zoukankan      html  css  js  c++  java
  • 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 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) { 
            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); 
    }

  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/jshen/p/4142793.html
Copyright © 2011-2022 走看看