如何破坏Android中的活动?

Nik*_*kki 17 android

应用程序运行时,我按HOME按钮关闭应用程序.当我再次启动应用程序时,它会在单击HOME之前显示的页面上恢复.我希望应用程序从初始显示开始.我已经使用finish()来完成活动,但它无法正常工作.有什么建议?

Bar*_*ica 21

很可能你有几个相同活动的实例.要解决此类问题,请创建自己的父Activity类,例如MyRootActivity,它将包含所有可用/活动活动的静态列表:

public class MyRootActivity extends Activity
{
    private static final String TAG=MyRootActivity.class.getName();
    private static ArrayList<Activity> activities=new ArrayList<Activity>();


    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        activities.add(this);
    }

    @Override
    public void onDestroy()
    {
        super.onDestroy();
        activities.remove(this);
    }

    public static void finishAll()
    {
        for(Activity activity:activities)
           activity.finish();
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,您的所有活动都需要是MyRootActivity的孩子.

然后当您确定要关闭应用程序时 - 只需调用MyRootActivity.finishAll();

  • @piku:我在同一行"... new ArrayList <Activity>;"上得到了同样的错误.我很确定它应该是"私有静态ArrayList <Activity> activities = new ArrayList <Activity>();" - 看括号? (2认同)