android应用完全退出的方法(续)
2014-03-20 15:27
357 查看
之前有写过一篇android应用完全退出的方法,是在onPause()方法里调用finish()去接收当前activity。这种方法试用范围较狭窄,只能用于只包含一个activity的应用。比如一个应用中有两个activity ,A和B,A是mainactivity。从A跳转到B后,A中onPause被调用,由于onPause中添加了finish()方法,A的onDestroy被调用,然后调用killProcess,这样整个应用就退出了,显然是不能接受的。
改进的方法如下在A的onPause()方法中添加:
new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub //Log.d("BrowserActivity","@@@@@@@2"); try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //Log.d("BrowserActivity","@@@@@@@3"); String pname = BrowserActivity.this.getPackageName(); ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> taskInfo = mActivityManager.getRunningTasks(1); if(taskInfo.size()>0){ Log.d("BrowserActivity","onPause Top Activity = " + taskInfo.get(0).topActivity.getClassName() + " package = " + taskInfo.get(0).topActivity.getPackageName() + " pname = " + pname); if(!(taskInfo.get(0).topActivity.getPackageName().equals(pname))){ Log.d("BrowserActivity","@@@@@ is to finish "); finish(); } } } }).start();
主要是添加一个延时线程,通过RunningTaskInfo获取将要跳转到的activity的包名,如果是同一个包则正常跳转,否则调用finish()方法,从而结束当前进程。
相关文章推荐
- Android应用开发完全退出程序的通用方法!!!
- android应用完全退出的方法
- Android应用开发完全退出程序的通用方法
- Android应用开发完全退出程序的通用方法!!!
- Android应用开发完全退出程序的通用方法
- Android应用完全退出程序的方法!!!
- Android应用开发完全退出程序的通用方法!!!
- Android应用开发完全退出程序的通用方法!!!
- Android应用开发完全退出程序的通用方法!!!
- android完全退出当前应用的方法
- Android应用开发完全退出程序的通用方法!!!
- Android应用开发完全退出程序的通用方法!!! (转)
- Android应用开发完全退出程序的通用方法!!!
- android完全退出应用的4种方法
- Android应用开发多个activity完全退出程序方法
- Android 完全退出应用的四种方法
- Android 记录Acitvity方法完全退出应用
- Android 完全退出应用方法
- Android 完全退出应用方法
- Android 双击Back键退出应用的实现方法