我正在制作一个简单的android应用程序,有两个活动。一个主要活动和一个信息活动。我的actionbar上有一个按钮,单击后我想打开我的infoactivity。在我的infoactivity中,我有一个back按钮,它删除了我的infoactivity并再次打开我的mainactivity。我可以在不关闭主活动的情况下打开infoactivity吗?
我正在解析来自internet的json我的主要活动,我不希望它在我关闭infoactivity时再次加载所有内容。
打开信息活动的代码:

  private View.OnClickListener onInfoBtnClick = new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(MainActivity.this, InfoActivity.class);
            startActivity(intent);
        }
    };

在InfoActivity类中关闭InfoActivity的代码:
private View.OnClickListener onBackBtnClick = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(InfoActivity.this, MainActivity.class);
        startActivity(intent);
    }
};

最佳答案

我可以在不关闭主活动的情况下打开infoactivity吗?
不,infoactivity将被调用到前台和后台的mainactivity,因为它将处于stopped状态。问题是,如果像这样在infoactivity中激发意图,那么除了旧实例之外,还会有mainactivity的新实例。
在意向调用中添加一个标志,以阻止mainActivity的新实例。然后从堆栈调用它。

private View.OnClickListener onBackBtnClick = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(InfoActivity.this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
};

或者简单的呼叫,就像哈马德和艾罗建议的那样。然后infoactivity将被销毁,mainactivity将从堆栈中调用。

08-07 01:01