歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 如何真真正正的退出Android應用

如何真真正正的退出Android應用

日期:2017/3/1 10:15:32   编辑:Linux編程

如何真真正正的退出Android應用,最簡單有效的方法,不看你會後悔。

大家開發項目時可能又會遇到,要求退出時完全退出該應用,不得有任何殘留的Activity,如何辦呢?

我搜了一圈網上大多都是什麼使用Intent跳轉到手機桌面,千篇一律啊,各種一樣啊,各種不能用啊

或者又有什麼:

ActivityManager activityMgr = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

activityMgr.restartPackage(mContext.getPackageName());

或者出現什麼:

int pid = android.os.Process.myPid();

android.os.Process.killProcess(pid); //殺死當前進程

大家發現了什麼沒有,是滴都不行滴,是的沒錯。以前看到一個視頻上講的用什麼建一個list,沒一個oncreat()時添加到list裡面去,好麻煩啊,受不鳥啊,

下面給大家介紹一種無比簡單的方法,不喜歡的大家再想辦法,我個人覺得簡單,方便才是王道。

首先創建一個BaseActivity,import大家自己加上,在裡面很簡單,聲明了一個廣播接收器,在接受裡面進行finish(),

其次就是接受器的注冊與銷毀分別在onResume()和onDestory()中。

  1. public class BaseActivity extends Activity {
  2. protected BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
  3. @Override
  4. public void onReceive(Context context, Intent intent) {
  5. finish();
  6. }
  7. };
  8. @Override
  9. protected void onResume() {
  10. super.onResume();
  11. // 在當前的activity中注冊廣播
  12. IntentFilter filter = new IntentFilter();
  13. filter.addAction("ExitApp");
  14. this.registerReceiver(this.broadcastReceiver, filter);
  15. }
  16. @Override
  17. protected void onDestroy() {
  18. // TODO Auto-generated method stub
  19. super.onDestroy();
  20. this.unregisterReceiver(this.broadcastReceiver);
  21. }
  22. }

接下來大家可能已經猜到了,把你需要顯示的類,也就是跳轉時沒關閉過的,都extends BaseActivity,

當退出時只需發送一個廣播即可:

  1. Intent intent = new Intent();
  2. intent.setAction("ExitApp");
  3. this.sendBroadcast(intent);
  4. super.finish();

然後就沒了,是不是很簡單,鮮花在哪裡。
總結一下吧:
1:先創建一個BaseActiviey。
2:把需要關閉的Activity全部extends BaseActivity
3:關閉時放一個廣播就可

Copyright © Linux教程網 All Rights Reserved