Android编程之退出整个应用程序的方法
程序员文章站
2023-12-14 21:54:40
本文实例讲述了android编程之退出整个应用程序的方法。分享给大家供大家参考,具体如下:
我们在写android应用程序时,经常会遇到想退出当前acitivity,或者...
本文实例讲述了android编程之退出整个应用程序的方法。分享给大家供大家参考,具体如下:
我们在写android应用程序时,经常会遇到想退出当前acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源。有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽。
后面添加了一个菜单返回功能键,这个方法也只能用system.exit(0)来关闭当前活动的activity,代码如下:
public boolean oncreateoptionsmenu(menu menu) { super.oncreateoptionsmenu(menu); menuitem item = menu.add(menu.none, menu.none, menu.none, "exit"); item.setonmenuitemclicklistener(new menuitem.onmenuitemclicklistener() { public boolean onmenuitemclick(menuitem item) { system.exit(0); return true; } }); return true; }
想到这样太不方便了,每次退出界面之后应用程序还在运行,今天查了下资料终于把这个问题给解决了,
网上提供了几种方法,我吸收了下面这个自认为简单易懂的方法,将下面sysapplication这个类复制到工程里面,然后在每个acitivity的oncreate方法里面通过sysapplication.getinstance().addactivity(this); 添加当前acitivity到ancivitylist里面去,最后在想退出的时候调用sysapplication.getinstance().exit();可直接关闭所有的acitivity并退出应用程序。
附代码:
import java.util.linkedlist; import java.util.list; import android.app.activity; import android.app.alertdialog; import android.app.application; import android.content.dialoginterface; import android.content.intent; public class sysapplication extends application { private list<activity> mlist = new linkedlist<activity>(); 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) { mlist.add(activity); } public void exit() { try { for (activity activity : mlist) { if (activity != null) activity.finish(); } } catch (exception e) { e.printstacktrace(); } finally { system.exit(0); } } public void onlowmemory() { super.onlowmemory(); system.gc(); } }
在应用程序里面 的activity的oncreate里面添加
复制代码 代码如下:
sysapplication.getinstance().addactivity(this)
如:
public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); sysapplication.getinstance().addactivity(this); }
希望本文所述对大家android程序设计有所帮助。