在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。
Android中,退出应用程序的方式:
通过pid
int pid = androidosProcessmyPid(); //获取当前应用程序的PID
androidosProcesskillProcess(pid); //杀死当前进程
这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。
2通过ActivityManager
ActivityManager manager = (ActivityManager)contextgetSystemService(ACTIVITY_SERVICE); //获取应用程序管理器
managerkillBackgroundProcesses(getPackageName()); //强制结束当前应用程序
这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。
有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽。后面添加了一个菜单返回功能键,这个方法也只能用systemexit(0)来关闭当前活动的Activity,附代码:public boolean onCreateOptionsMenu(Menu menu){superonCreateOptionsMenu(menu);MenuItem item = menuadd(MenuNONE, MenuNONE, MenuNONE, "Exit");itemsetOnMenuItemClickListener(new MenuItemOnMenuItemClickListener(){public boolean onMenuItemClick(MenuItem item){Systemexit(0);return true;}});return true;}想到这样太不方便了,每次退出界面之后应用程序还在运行,今天查了下资料终于把这个问题给解决了,网上提供了几种方法,我吸收了下面这个自认为简单易懂的方法,将下面SysApplication这个类复制到工程里面,然后在每个Acitivity的oncreate方法里面通过SysApplicationgetInstance()addActivity(this);添加当前Acitivity到ancivitylist里面去,最后在想退出的时候调用SysApplicationgetInstance()exit();可直接关闭所有的Acitivity并退出应用程序。附代码:import javautilLinkedList; import javautilList; import androidappActivity; import androidappAlertDialog; import androidappApplication; import androidcontentDialogInterface; import androidcontentIntent; public class SysApplication extends Application { private List mList = new LinkedList(); private static SysApplication instance; private SysApplication() { } public synchronized static SysApplication getInstance() { if (null == instance) { instance = new SysApplication(); } return instance; } // add Activity public void addActivity(Activity activity) { mListadd(activity); } public void exit() { try { for (Activity activity : mList) { if (activity != null) activityfinish(); } } catch (Exception e) { eprintStackTrace(); } finally { Systemexit(0); } } public void onLowMemory() { superonLowMemory(); Systemgc(); } } 在应用程序里面 的activity的oncreate里面添加SysApplicationgetInstance()addActivity(this)如:public void onCreate(Bundle savedInstanceState){superonCreate(savedInstanceState);
首先,一键清理的软件比如说360
本身也是占用运行内存的,如果要彻底关闭应用程序的话具体步骤如下,点击设置,应用程序,正在运行的服务,点击,停止他,多点击几次,就能关闭了,顺便说一句,让软件后台运行的话
许多软件在后台启动,会占内存和费电吗,需一直清理内存吗?事实上应用被切换到后台时,其实已被暂停,并不会消耗cpu资源,只保留运行状态,类似qq这种带后台服务的应用,可选择关闭。这种设计好,下次启动程序时会更快,因为不需要读取界面资源。
然后重新启动时又要读取资源而且后台自动启动反而会更加耗电。手机运行内存小目前没哟什么好的方法解决,唯一的就是换大运行内存的手机,不过不太现实,具体建议获取root权限取消这些后台自启动的软件的自启动功能,嗨哟在锁频以后自动清理内存会相对较好
以上就是关于Android 怎么退出整个应用程序全部的内容,包括:Android 怎么退出整个应用程序、Android 怎么退出整个应用程序、安卓手机怎样关闭手机后台运行的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)