就是有多个activity的应用,比如activity  a-->b-->c。 
在c的时候我要整个退出应用,如果用android.os.Process.killProcess可以把应用的缓存什么的全清楚并且销毁c, 但是a和b还在。
我现在采取的办法是发消息给所有的activity,然后每个activity自己finish还有个办法是用队列管理所有activity,退出的时候把activity一个一个finish
哪个高手有更好的机制么?

解决方案 »

  1.   

    ActivityManager can handle your problem.first you could get running process info through getRunningAppProcesses()then you can use restartPackage() or killBackgroundProcesses() to kill your app
      

  2.   

    ActivityManager can handle your problem.first you could get running process info through getRunningAppProcesses()then you can use restartPackage() or killBackgroundProcesses() to kill your app
    -------------------------
    这个不行的,你没亲自试过吧
    没法销毁其他activity
      

  3.   

    Tested by myselfmoveTaskToBack(true);
    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    am.killBackgroundProcesses(getPackageName());and you need add 
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
    in your manifext
      

  4.   

    我个人觉得比较合理的方式:
    start b/c的时候用startActivityForResult(), c退出的时候setResult()+finish(), 然后在b的onActivityResult()中再setResult()+finish()就会回到a,a再finish(), 这样做在逻辑上比较好理解,并且当你期望从b/c返回一些数据的时候也用得上.
    killProcess的方法总感觉太暴力....
      

  5.   

    其实还有一个办法就是,你先定义一个主Activity,然后其他两个都继承主Acitivity,这样一来,只要你想在子Activity中退出程序时,只需发送一个消息到主Activity.然后在主Activity中退出就可以结束全部应用程序了。因为其他的Activity都是继承该主Activity.主结束了,子当然也会销毁