Android程序: 按退出键时如何finish所有活动直接退到桌面?

Steven_Lin 发布于 2017/08/24 22:29
阅读 78
收藏 0

    如下问题,请教下大神。

如下的程序中有两个活动,主活动为FirstActivity,界面为firstlayout, 次活动为StartActivity,界面为startlayout,另建了类Activitycollector,用于集合所有活动及结束所有活动。

问题是,当程序运行时,由FirstActivity 通过intent 进入 StartActivity后,此时界面为startlayout, 此后按退出键不会直接退到桌面,而是会先退回到firstlayout(显示时间很短,可能只有0.1s),然后再退到桌面。

如何能做到不先退回firstlayout直接一步就退回桌面呢? 谢谢。

 

public class FirstActivity extends Activity {

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    Activitycollector.addActivity(this);
    setContentView(R.layout.firstlayout);
.................}

    protected void onDestroy(){
        super.onDestroy();        
        Activitycollector.finishAll();
    }

 

public class StartActivity extends Activity  {

    protected void onCreate(Bundle savedInstanceState){    
    super.onCreate(savedInstanceState);
    Activitycollector.addActivity(this);
     setContentView(R.layout.startlayout);    
.........................}

    protected void onDestroy(){
        super.onDestroy();
        Activitycollector.finishAll();
    }

}

public class Activitycollector {

    public static List<Activity> activities = new ArrayList<Activity>();
    
    public static void addActivity (Activity activity){
        activities.add(activity);
    }
    
    public static void removeActivity(Activity activity){
        activities.remove(activity);
    }
    
    public static void finishAll(){
        for (Activity activity:activities) {
            if (!activity.isFinishing()){
                activity.finish();
            }
        }
    }
}

加载中
2
蓝水晶飞机
蓝水晶飞机

来一句:

System.exit(0);

就像闪退那么快,一瞬间消失。

蓝水晶飞机
蓝水晶飞机
我不清楚最新版本的 Android 是不是改了机制,我以前写的是Android 4.0的年代。 我建议你试试去掉super.xx()的调用。
Steven_Lin
Steven_Lin
我在次活动中加入如下代码: protected void onStop(){ super.onStop(); System.exit(0); } 结果按返回键还是会回到主活动界面再退出。 如果是加入onPause()中,则按次活动会一直重启 protected void onPause(){ super.onPause(); System.exit(0);}
0
CodeZero
CodeZero

整个环境退出呗

0
花花兽
花花兽

建一个基础类BaseActivity,都继承下,里面做个广播监听,执行finish方法,StartActivity按返回键的时候发送广播,退出app,完事

Steven_Lin
Steven_Lin
感谢,已解决。
返回顶部
顶部