其实Android系统设计的理念就是要淡化用户对后台的管理,手机资源的分配完全交给系统就可以。Android会设定一个阈值,这个阈值默认设置的非常小,所以我们所看到内存剩余量也会很少,事实上并不会影响手机的速度。下面是我收集整理的安卓手机后台程序无法关闭怎么办,欢迎阅读。
安卓手机后台程序无法关闭怎么办
关于Android的后台一直关不掉的问题,其实完全是因为Android的广播机制。简单来说,当用户安装某一个程序的时候,系统会像面试官一样把这个程序的功能记录下来,当用户在使用手机时,系统状态的变化会产生各种事件,这些事件需要一些程序来处理的时候,系统会发送广播消息,而这些能处理这件事的程序会被启用,究竟是用哪一个程序,这个是由系统默认的程序或者由用户选择的程序来处理这个事件。
举个例子:就如同你开了一家公司,Android是你的管家,那些程序则是来你这里应聘的职工,管家会记录这些职工的能力,例如A会搓澡,B会大保健。当你想要搓澡的时候,管家会叫A过来帮你搓澡。当你想要大保健的时候,管家会叫B过来给你做个大保健。哪怕这个程序是在休眠中,也会被叫起来。也就是不管你怎么去关闭这些应用程序,当需要它的时候,它就是一颗螺丝钉,哪里需要哪里钉。
当然还有一些你不需要的程序也一直在自启动,这是因为利益的原因,国内的很多流氓软件都改变了自身程序的优先性,外加增加了终止其他程序的权限,还有增加守护进程的功能,当检测到自己人被干掉了,直接一个复活术让这个程序满血满蓝原地复活。而另外一些社交软件则是为了保证能够及时推送消息,也会做出一些优先权的改变。
如果运行内存大,是不是就不需要关闭了?
其实Android系统设计的.理念就是要淡化用户对后台的管理,手机资源的分配完全交给系统就可以。Android会设定一个阈值,这个阈值默认设置的非常小,所以我们所看到内存剩余量也会很少,事实上并不会影响手机的速度,而且它有一个自己的规则来回收这些内存,当内存使用达到临界值的时候,再次打开另一个程序系统会选择一些重要性比较低的程序关闭来腾出内存给这个程序运行。
而我们之所以感觉手机在打开某个大型程序会慢的原因就是当你打开这个程序的时候,这个程序会向系统申请内存,由于系统不会关闭所有的进程,只是选择性的去关闭,所以会调动大量的系统资源进行 *** 作,自然也就会拖慢系统。改变系统的阈值会改善很多,但是也可能会带来一些问题。
所以,后台的程序本身就不需要关闭,如果当你运行某个大型程序的时候可以去手动关闭,这样可以显著的提高速度,而平常使用的时候则不需要去管它。至于内存的大小,这个除非你内存大到一定程度,否则你安装N多APP早晚又会达到这个阈值的。
关闭手机后台运行程序
方法一、在应用上退出程序
现在很多软件游戏在退出后是不会在后台继续运行的,像这类应用我们只需在应用界面点击手机“返回键”两次即可退出,或者在应用设置处点击退出即可。
方法二、在手机设置里关闭程序
如果手机应用在前台关闭后仍然会运行,您也可以在手机设置里对程序进行关闭。
1、在手机“设置”里找到“应用程序”,在应用列表里找到该应用,如下图所示。
2、点击应用图标打开设置页面后点击“强行停止”即可。
方法三、用第三方软件关闭程序
现在很多手机管理软件都有关闭程序的功能,像360手机卫士、腾讯手机管家、高级任务管理器之类的软件都可以实现。这里就以360手机卫士为例为大家讲解一下。
1、打开360手机卫士,在“手机加速”里找到“内存清理”并点开,如下图所示。
2、在“内存清理”页面选择需要清理的应用进程,有些如百度输入法这类常用的软件可以不用清理,然后选择“一键清理”即可,如下图所示。
3、此外360手机卫士安装后在手机屏幕上会有个如下图显示所占内存百分比的小图标,点击打开小窗口,点击某个会关闭该应用,也可以点击“一键清理”关闭所有前台应用。
手机中有些小软件占用的内存是很小的,对于这些软件如果用户常用的话是不需要去关闭其后台程序的,这样能加快您下次启动该软件的时间,增加用户体验。而对于占内存比较大的软件游戏,我们可以手动对其进行关闭,保障系统运行的流程,也能节省手机电量。
强制结束关闭后台
首先是打开"设置",然后找到"应用程序"点击进入,找到"管理应用程序"后点击,进入"正在服务的程序"选项,找到想结束的程序进入后点击"强制结束"即可。
Android2.2版本Intent
startMain
=
new
Intent(Intent.ACTION_MAIN)
startMain.addCategory(Intent.CATEGORY_HOME)
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(startMain)
System.exit(0)//退出程序
Android2.2以下版本
1、在配置文件中加入权限:
<uses-permission
android:name="android.permission.RESTART_PACKAGES"
/>
2、ActivityManager
am
=
(ActivityManager)getSystemService
(Context.ACTIVITY_SERVICE)
am.restartPackage(getPackageName())
这几天也在研究窗体的特性,当一个窗体(Activeity)不在当前屏时,如果被激活过,它仍会运行着,
所以,你的两个窗体都在执行通讯,前面一个窗体优先通讯着。
可以在窗体事件里 onPause()onStop()等,把当前的通讯停掉,
OnResume()事件里则要把通讯打开,查一查窗体有几个这方面事件。
也是刚学几天,不太精,但有C++基础,学的很快。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)