當(dāng)有3個activity時,在第三個activity想退出程序,那么就要按back鍵3次才能退出,那么怎么直接退出呢。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),固安企業(yè)網(wǎng)站建設(shè),固安品牌網(wǎng)站建設(shè),網(wǎng)站定制,固安網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,固安網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1、創(chuàng)建一個專門的集合類來管理所有活動
package com.yuanlp.taskstack;
import android.app.Activity;
import java.util.ArrayList;
import java.util.List;
/**
* Created by 原立鵬 on 2017/6/27.
*/
public class ActivityCollector {
public static List<Activity> activityList=new ArrayList<Activity>();
public static void addActivity(Activity activity){
activityList.add(activity);
}
public static void removeActivity(Activity activity){
activityList.remove(activity);
}
public static void finshiAll(){
for (Activity activity: activityList){
if (!activity.isFinishing()){ //判斷當(dāng)前activity是否被干掉了
activity.finish();
}
}
activityList.clear();
}
}2、創(chuàng)建一個java的類,BaseActivity,繼承AppCompatActivity。為什么不直接寫成activity呢,因為我們不需要講BaseActivity在Manifext.xml里注冊。
package com.yuanlp.taskstack;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
/**
* Created by 原立鵬 on 2017/6/27.
*/
public class BaseActivity extends AppCompatActivity{
private static final String TAG = "BaseActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, getClass().getSimpleName()); //獲取當(dāng)前活動的名稱
ActivityCollector.addActivity(this); //調(diào)用自己寫的activity的集合類,把當(dāng)前activity加入到list中
}
protected void onDestroy(){
super.onDestroy();
ActivityCollector.removeActivity(this); //每當(dāng)當(dāng)前activity銷毀時,去除當(dāng)前activity
}
}3、讓3個activity都繼承BaseActivity,這樣之前寫的三個activity也不會報錯。
package com.yuanlp.taskstack;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends BaseActivity {
private static final String TAG = "MainActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "Task id is: "+getTaskId()); //輸出當(dāng)前返回棧的ID
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart: ");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume: ");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause: ");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop: ");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, "onRestart: ");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy: ");
}
public void open1(View view){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
public void open2(View view){
Intent intent =new Intent(this,SecondActivity.class);
startActivity(intent);
}
}4、在第三個activity中加入一個按鈕,點擊后退出程序。
package com.yuanlp.taskstack;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class ThirdActivity extends BaseActivity {
private static final String TAG = "ThirdActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "Task id is"+getTaskId());
setContentView(R.layout.activity_third);
}
public void exitApp(View view){
ActivityCollector.finshiAll(); //退出
android.os.Process.killProcess(android.os.Process.myPid()); //殺死當(dāng)前進(jìn)程
}
}
網(wǎng)站名稱:當(dāng)有多個activity時,隨時隨地退出當(dāng)前程序
本文網(wǎng)址:http://chinadenli.net/article0/gdgjoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、營銷型網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)站維護(hù)、網(wǎng)站營銷、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)