zoukankan      html  css  js  c++  java
  • android退出activity的方式总结(一)

    在android中使用:[activityname].this.finish();  只是退出了activity的堆栈中,要真正的退出程序在手机cpu中的运行,当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:

    一   使用killProcess()函数,首先获取当前进程的id,然后杀死该进程:

    1 android.os.Process.killProcess(android.os.Process.myPid()); 


    通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空

    二   在activity的生命周期函数中添加如下的函数,强制关闭与该包有关联的一切执行:

    1 ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); am.restartPackage("packagename"); 

          还需要在AndroidManifest.xml文件中加入如下的权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />
       
          此做法:只能杀死别人,不能杀死自己

    三、 终止当前正在运行的Java虚拟机,导致程序终止
    System.exit(0);
    不会把自己的应用程序杀死


    企业中做法:
    创建类app 继承Application

    AndroidMainfest -->name -->app //声明该类为整个应用程序全局的实例

    创建整个应用程序全局的实例
    App.class:
    ArrayList<Activity> activities;

    其他的Activity中:

    1 public void onCreate(Bundle savedInstanceState) {
    2         App app = (App) getApplication();//获取应用程序全局的实例引用
    3         app.activities.add(this);    //把当前Activity放入集合中
    4 }
    5 
    6 public void onDestory(){
    7         App app = (App) getApplication();//获取应用程序全局的实例引用
    8         app.activities.remove(this); //把当前Activity从集合中移除
    9 }

    安全退出:
    在菜单退出按钮的事件中定义如下代码:

    1 App app = (App) getApplication();
    2 List<Activity> activities = app.activities;
    3 for(Activity act:activities){
    4   act.finish();//显式结束
    5 }
  • 相关阅读:
    使用libgdx及其中的box2d 2.1的注意事项
    Android.mk file syntax specification(ndkr8)
    NDK Note
    Problems of Android NDK
    Android.mk of NDK
    Android IM Note
    Regular Expression
    Some Efficient Algorithms
    libgdx use TexturePacker
    The Conversion Of JNI
  • 原文地址:https://www.cnblogs.com/lijinlun0825/p/5155385.html
Copyright © 2011-2022 走看看