Android“再按一次退出程序”实现
16lz
2021-01-25
为了降低用户误操作退出程序的概率,很多应用都会采用“再按一次退出程序”的方式来处理。实现原理下图所示:
实现方式如下:
private long exitTime = 0;@Override public void onBackPressed() { if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { System.exit(0); } }
退出程序的实现
public class MyApplication extends Application{ public Context appContext = null; private List mList = new LinkedList(); private static MyApplication instance; public MyApplication() { } @Override public void onCreate() { super.onCreate(); appContext = getApplicationContext(); } public synchronized static MyApplication getInstance() { if (null == instance) { instance = new MyApplication(); } return instance; } public void addActivity(Activity activity) { mList.add(activity); } public void exit() { try { for (Activity activity : mList) { if (activity != null) activity.finish(); } } catch (Exception e) { e.printStackTrace(); } finally { System.exit(0); } } public void onLowMemory() { super.onLowMemory(); System.gc(); }}
创建一个BaseActivity,所有的Activity都继承自自BaseActivity
public class BaseActivity extends Activity { private BaseActivity oContext; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); oContext = this;// 把当前的上下文对象赋值给BaseActivity MyApplication.getInstance().addActivity(this); }}
在需要退出程序的地方调用,即可退出程序
MyApplication.getInstance().exit();
更多相关文章
- GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
- Intent 实现页面之间的跳转
- Android(安卓)将Back 模拟或者转换为按Home键一样的效果
- android 横竖屏切换与数据保存
- Android(安卓)Retrofit 2.0自定义JSONObject Converter
- Android状态栏上添加按钮(程序部分)
- Android(安卓)SNTP 时间同步
- Activity 的Managing Tasks属性
- Andorid利用sserver/runtime实现java执行linux程序或脚本