RT

解决方案 »

  1.   

    就是我在一个Activity里调用finish()时,又返回到上一个访问的Activity中去了。
      

  2.   

    那是必须的,你上一个Activity 还在栈里面呀
      

  3.   

    直接杀死进程:
    2.2以前:
         ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
         am.restartPackage(getPackageName());
    2.2以后(包含2.2):
    ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);  
       am.killBackgroundProcesses(getPackageName());  
    它们各需要如下权限:
    <uses-permission android:name="android.permission.RESTART_PACKAGES"/>
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES">或者如果你的应用允许,在启动下一个activity的时候都会把之前的清除掉,保证activity堆栈中只有一个activity实例存在,这样finish掉activity效果就相当于退出整个应用了.
      

  4.   

    在启动下一个activity的时候都会把之前的清除掉 ..这么做恐怕不好吧· 其实上个项目中的activity都是在重写的ActivityManager 中处理的,非主页面都finish掉了,主页面只有当整个程序退出后才会finish();
      

  5.   

    继承application,把每个activity的引用记录下来需要退出的时候遍历,finish
      

  6.   

    那你再进入下一个Activity时结束掉