android之点击返回两次退出程序
来源:互联网 发布:薛之谦封面抄袭知乎 编辑:程序博客网 时间:2024/05/16 07:55
第一种方法中当退出应用后弹出应用程序崩溃的对话框,有时退出后还会再次启动,少部分的用户体验不太好。但现在也依旧还会有少部分的开发人员会使用这种方式,因为使用方式很简单
第一种方法:
public class MainActivity extends Activity { // 定义一个变量,来标识是否退出 private static boolean isExit = false; Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExit = false; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { exit(); return false; } return super.onKeyDown(keyCode, event); } private void exit() { if (!isExit) { isExit = true; Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); // 利用handler延迟发送更改状态信息 mHandler.sendEmptyMessageDelayed(0, 2000); } else { finish(); System.exit(0); } }}为了更好用户体验一般常用第二种方法,第二种方式是吧activity放到集合中,返回退出应用程序去销毁activity来完成操作
第二种方法:
private List<Activity> oList;//用于存放所有启动的Activity的集合
public void onCreate() {
super.onCreate();
oList = new ArrayList<Activity>();
}
/**
* 添加Activity
*/
public void addActivity_(Activity activity) {
// 判断当前集合中不存在该Activity
if (!oList.contains(activity)) {
oList.add(activity);//把当前Activity添加到集合中
}
}
/**
* 销毁单个Activity
*/
public void removeActivity_(Activity activity) {
if (oList.contains(activity)) {
oList.remove(activity);//从集合中移除
activity.finish();//销毁当前Activity
}
}
/**
* 销毁所有的Activity
*/
public void removeALLActivity_() {
for (Activity activity : oList) {
activity.finish();
}
}
}
<创建BaseActivity 继承 Activity> 用于管理所有的Activity,所有的Activity都继承这个类
public class BaseActivity extends Activity {
private myApplication application;
private BaseActivity oContext;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (application == null) {
// 得到Application对象
application = (myApplication) getApplication();
}
oContext = this;// 把当前的上下文对象赋值给BaseActivity
addActivity();// 调用添加方法
}
// 添加Activity方法
public void addActivity() {
application.addActivity_(oContext);// 调用myApplication的添加Activity方法
}
//销毁当个Activity方法
public void removeActivity() {
application.removeActivity_(oContext);// 调用myApplication的销毁单个Activity方法
}
//销毁所有Activity方法
public void removeALLActivity() {
application.removeALLActivity_();// 调用myApplication的销毁所有Activity方法
}
/* 把Toast定义成一个方法 可以重复使用,使用时只需要传入需要提示的内容即可*/
public void show_Toast(String text) {
Toast.makeText(oContext, text, Toast.LENGTH_SHORT).show();
}
}
public class oneActivity extends BaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.onelayout);
}
// 绑定按钮
public void button(View v) {
Intent intent = new Intent(this, MainActivity.class);//跳转到主界面
startActivity(intent);
}
}
第二种方法是参考网上的代码
连接:http://blog.csdn.net/u013804382/article/details/52788900
- android之点击返回两次退出程序
- Android 点击两次返回键退出程序
- Android点击两次返回键退出程序
- Android 点击两次返回键退出程序
- Android:点击返回键两次退出程序
- Android 点击两次返回键退出程序
- Android点击两次返回键退出程序
- Android 点击两次返回键 退出程序
- Android 点击两次返回键退出程序
- Android 点击两次返回退出程序
- Android点击两次返回键退出程序
- 点击两次返回退出程序
- Android点击返回按钮弹出提示“点击两次退出程序”
- android 点击两次返回退出
- android程序 点击两次返回键程序退出
- android程序 点击两次返回键程序退出
- 【Android学习】Android实现两次点击返回键退出程序
- android 连续两次点击返回键 退出程序
- windows常用命令行操作
- Java作业杨枝10.14/10.15
- UML之类图
- C#中DataTable查询方案
- NEUQ OJ 1039: 谭浩强C语言(第三版)习题4.9
- android之点击返回两次退出程序
- 《Head First Java》学习笔记 (八)接口与多态
- 欢迎使用CSDN-markdown编辑器
- SSM框架搭建
- HYSBZ4016-最短路径树问题
- C++11多线程的创建
- CSS3 @font-face
- markdown编辑器
- MySQL用户管理