安卓Activity的退出应用程序
2017-06-17 20:42
239 查看
退出应用程序
<1>递归退出
<2>栈退出
<3>报错(解决,对话框)
主界面
<1>点击返回键,弹出退出的对话框
<2>双击两次返回键,退出
1.《递归退出》
java代码
finish()与System.exit()退出的区别:
finish()会调用onDestroy(),而System.exit()不会
public void exit(View view){
// finish();
System.exit(0);
}
2.栈退出
BActivity.java代码
里面调用MyApplication中的退出程序的方法
MainActivity.java里面的代码
<1>点击返回键,弹出退出的对话框
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_BACK&&event.getAction()==KeyEvent.ACTION_UP){
long secondTime=System.currentTimeMillis();
if(secondTime-firstTime>2000){
Toast.makeText(myApplication, "再按一次退出程序", Toast.LENGTH_SHORT).show();
firstTime=secondTime;
return true;
}else{
System.exit(0);
}
}
return super.onKeyUp(keyCode, event);
}
<2>双击两次返回键,退出
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//点击返回键
if (keyCode==KeyEvent.KEYCODE_BACK){
//声明弹出对象并初始化
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("提示:");
builder.setMessage("是否退出?");
//设置按钮
builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
//设置取消按钮
builder.setPositiveButton("取消",null);
//显示弹窗
builder.show();
}
return super.onKeyDown(keyCode, event);
}
<1>递归退出
<2>栈退出
<3>报错(解决,对话框)
主界面
<1>点击返回键,弹出退出的对话框
<2>双击两次返回键,退出
1.《递归退出》
java代码
finish()与System.exit()退出的区别:
finish()会调用onDestroy(),而System.exit()不会
public void exit(View view){
// finish();
System.exit(0);
}
2.栈退出
在java里new一个包,再写一个java文件(MyApplication)
public class MyApplication extends Application { private List<Activity> activities=new ArrayList<>(); public void add(Activity activity){ activities.add(activity); } public void exit(){ for (Activity activity : activities) { activity.finish(); } } }
BActivity.java代码
里面调用MyApplication中的退出程序的方法
public void exit(View view){ // finish(); // System.exit(0); myApplication.exit(); }
MainActivity.java里面的代码
public void exit(View view){ myApplication.exit(); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); exit(null); }
<1>点击返回键,弹出退出的对话框
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_BACK&&event.getAction()==KeyEvent.ACTION_UP){
long secondTime=System.currentTimeMillis();
if(secondTime-firstTime>2000){
Toast.makeText(myApplication, "再按一次退出程序", Toast.LENGTH_SHORT).show();
firstTime=secondTime;
return true;
}else{
System.exit(0);
}
}
return super.onKeyUp(keyCode, event);
}
<2>双击两次返回键,退出
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//点击返回键
if (keyCode==KeyEvent.KEYCODE_BACK){
//声明弹出对象并初始化
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("提示:");
builder.setMessage("是否退出?");
//设置按钮
builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
//设置取消按钮
builder.setPositiveButton("取消",null);
//显示弹窗
builder.show();
}
return super.onKeyDown(keyCode, event);
}
相关文章推荐
- 笔记:安卓完全退出应用程序出现闪退、返回上一个activity的问题
- Android退出一个多Activity应用程序的方法
- 在某个Activity上点击返回时,退出全部的Activity并退出应用程序
- Android完全退出应用程序,Activity自定义管理栈
- Android:销毁所有的Activity退出应用程序几种方式
- 安卓完美退出App以及跨界面关闭Activity
- 问题解决:在非主Activity中无法退出应用程序,只能返回上一个Activity
- Activity的LaunchMode和退出应用程序
- 仿微信安卓Activity拖动退出分析
- Android:销毁所有的Activity退出应用程序几种方式
- 用于Activity管理和应用程序退出
- Activity管理和应用程序的退出(推荐使用stack)
- 完全退出安卓应用程序的方法
- 退出整个应用程序 以及 利用intent标志跳转到某个Activity
- 安卓应用重启时偶发性退出,结合Activity与Service生命周期的解读和总结
- 安卓开发——安卓完全退出多个activity
- 用于Activity管理和应用程序退出
- 通用于Activity管理和应用程序退出
- Activity启动模式和栈退出应用程序
- Android安全退出多Activity与中止应用程序进程的探索