1 Dalvik VM的本地方法
androidosProcesskillProcess(androidosProcessmyPid()) //获取PID
Systemexit(0); //常规java、c#的标准退出法,返回值为0代表正常退出
2 任务管理器方法
首先要说明该方法运行在Android 15 API Level为3以上才可以,同时需要权限
ActivityManager am = (ActivityManager)getSystemService (ContextACTIVITY_SERVICE);
amrestartPackage(getPackageName());
系统会将,该包下的 ,所有进程,服务,全部杀掉,就可以杀干净了,要注意加上
<uses-permission android:name=\"androidpermissionRESTART_PACKAGES\"></uses-permission>
3 根据Activity的声明周期
我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,这里我们在A窗口打开B窗口时在Intent中直接加入标 志 IntentFLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
在A窗口中使用下面的代码调用B窗口
Intent intent = new Intent();
intentsetClass(Android123this, CWJclass);
intentsetFlags(IntentFLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
startActivity(intent);
接下来在B窗口中需要退出时直接使用finish方法即可全部退出。
4自定义一个Actiivty 栈,道理同上,不过利用一个单例模式的Activity栈来管理所有Activity。并提供退出所有Activity的方法。
杀进程: androidosProcesskillProcess(androidosProcessmyPid());
退Activity: androidappActivityfinish();
两种方式:
直接通过pid去杀掉进程
int pid = androidosProcessmyPid(); //获取当前应用程序的PID
androidosProcesskillProcess(pid); //杀死当前进程
通过包名来杀掉进程
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE); //获取应用程序管理器 managerkillBackgroundProcesses(getPackageName()); //强制结束当前应用程序
两种方式的区别,
这种方式杀死进程,后台的service可以继承跑
这种方式杀死进程后,后台的service也会被杀死
以上就是关于Android怎样才能完全退出程序全部的内容,包括:Android怎样才能完全退出程序、Android如何退出整个程序、Android 怎么退出整个应用程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)