您的位置:首页 > 移动开发 > Android开发

android开发退出应用方法

2017-06-22 10:29 295 查看
1 发送广播的方式

退出应用时向每个activity发送广播使其finish。

① 所有Activity继承BaseActivity,在BaseActivity中定义退出广播

class ExitAppReceiver extends BroadcastReceiver{
public static final String ACTION="exitAppReceiver";
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
}

② 在其中注册广播

IntentFilter intentFilter = new IntentFilter(ExitAppReceiver.ACTION);
exitAppReceiver = new ExitAppReceiver();
registerReceiver(exitAppReceiver,intentFilter);

别忘了onDestroy时注销广播

@Override
protected void onDestroy() {
unregisterReceiver(exitAppReceiver);
super.onDestroy();
}


③ 退出时发送广播

protected void exitApp() {
sendBroadcast(new Intent(ExitAppReceiver.ACTION));
}


2 使用activity集合的方式

将每个activity放到List中,退出应用时逐个finish。

① 在应用入口MyAppcation中定义 

public List<Activity> atyList = new ArrayList<>();

② 在BaseActivity的onCreate中加入

((MyApplication)getApplication()).atyList.add(this);

在onDestroy中加入

MyApplication app = (MyApplication) getApplication();
int index = app.atyList.indexOf(this);
if(index>=0){
app.atyList.remove(index);
}

③退出应用时逐个finish

protected void exitApp() {
App app = (App) getApplication();
if(app.atyList!=null && !app.atyList.isEmpty()){
for(Activity aty : app.atyList){
aty.finish();
}
}
}


3 如果应用只有一个退出应用的地方的话,如MainActivity,而且保证了MainActivity在栈顶时栈中只有一个activity实例,那么调用下面任一个方法即可。

android.os.Process.killProcess(android.os.Process.myPid())


finish();



System.exit(0);

注意:单独调用android.os.Process.killProcess(android.os.Process.myPid())或System.exit(0);只能关闭当前activity,不能退出应用


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息