欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程之退出整个应用程序的方法

程序员文章站 2023-12-18 12:54:04
本文实例讲述了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程序设计有所帮助。

上一篇:

下一篇: