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>
直接调用activity的finish()方法即可关掉当前这个activity
在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。
Android中,退出应用程序的方式:
1通过pid
int pid = androidosProcessmyPid(); //获取当前应用程序的PID
androidosProcesskillProcess(pid); //杀死当前进程
这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。
2通过ActivityManager
ActivityManager manager = (ActivityManager)contextgetSystemService(ACTIVITY_SERVICE); //获取应用程序管理器
managerkillBackgroundProcesses(getPackageName()); //强制结束当前应用程序
这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。
调整应用自启管理, 其实很多时候,我们手机的杀后台的现象可能都会是应用自启动管理惹的锅,由于系统为了可以更加省电,那么其可能就会为此而去自动的清理后台以减少手机的电量损耗,所以说,在平时我们最好可以将常会用到的应用,在设置里,打开其后台的自启动。
关闭省电模式, 同样有不少朋友为了手机更长时间的续航,可能往往都会将手机的省电模式打开,而同样也正是因为开启了手机的省电模式,为此系统也才会进行频繁发清理后台,从而以达到省电续航目的,所以我们在平时可以关闭掉手机的省电模式,等到真正需要给手机省电时,我们再将其开启。
取消后台限制, 有时候手机“掉后台”同样也可能是因为我们在手机中后台的应用太多了所导致的,所以在这时很多朋友就可能都会选择去打开手机的开发者人员选项,并将手机后台应用数量给限制了,那么如此一来,我们的手机在后台应用达到了一定的数量就会自动清理掉……
锁定后台, 确实锁定后台正在运行的应用程序其着实也是能够在一定程度上避免手机频繁杀后台现象的发生,这同样的确也是一种极为方便的方法。我们将手机的程序锁定在后台着实也是能够可以减少后台被清理掉的危险,从而使得我们在切换其他应用时不至于会需将其进行重新启动。
最后
那么以上就是我为大家所分享的全部内容了,希望能对大家有所帮助。另外对于大家来说,你又是如果避免手机“杀后台”的现象的呢?欢迎大家在下方评论区留言讨论,谢谢。
可以彻底结束掉一个进程。
这个问题跟Android系统框架相关,没有root权限的APP或进程管理器一般情况(指,调系统API情况下)无法彻底结束一个进程(但,反射可以做到),自制ROM不可以解决,原因同上(但,改Androidos源码可做到,需要重构 restartPackage、killBackgroundProcesses 方法)
通过系统设置-->应用程序管理-->进入列表中的任意一个应用管理界面都有一个“强行停止”按钮,强行停止可以做到你说的彻底杀死一个进程。
说明:系统该方法用到的是FORCE_STOP_PACKAGES权限,该权限只赋予系统签名级程序。
Android22之前可以用ActivityManagerrestartPackage()做到,之后的版本用killBackgroundProcesses() 但已经不能彻底结束。
其中的killBackgroundProcesses是androidappActivityManager类中的方法,而必须在Manifestxml文件中加入<uses-permission
android:name="androidpermissionKILL_BACKGROUND_PROCESSES"/> 的设置。 restartPackage (String packageName) 也是一种杀死进程的方法。 该方法的原型 public void killBackgroundProcesses (String packageName) 仅有一个参数为package Name,使用方法比较简单。
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
amkillBackgroundProcesses("cncomandroid123cwj"); // API Level至少为8才能使用
欢迎分享,转载请注明来源:品搜搜测评网