1

我正在使用以下代码在活动之间切换:

Intent b = new Intent(nowActivity.this, About.class);
startActivity(b);
return true;

这段代码运行良好,但它似乎使它在现有活动之上开始了一个新活动。

示例:我在我的 Android 手机上启动应用程序并按下菜单按钮以在屏幕上显示选项菜单。然后我点击“关于”进入应用程序的关于页面。如果我然后按菜单中的“关闭”选项,第一页(应用程序的主屏幕)将在屏幕上可见,一切都回到方块 1,就像我再次打开应用程序一样。

我不希望它像这样,我现在问你,我该如何解决这个问题?

提前致谢。

4

3 回答 3

1

我让它工作了!这是解决方案:

nowActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.menuItem1:
        Toast.makeText(this, "Du är redan på startsidan", Toast.LENGTH_SHORT).show();
        return false;

    case R.id.menuItem2:
        Intent b = new Intent(nowActivity.this, About.class);
        b.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(b);
        return true;

    case R.id.menuItem3:
        android.os.Process.killProcess(android.os.Process.myPid());
        return true;

    default:
        return super.onOptionsItemSelected(item);
    }
}

关于.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menuItem1:
        Intent a = new Intent(About.this, nowActivity.class);
        a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(a);
        return true;

    case R.id.menuItem2:
        Toast.makeText(this, "Du är redan på \"Om\"-sidan", Toast.LENGTH_SHORT).show();
        return false;

    case R.id.menuItem3:
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        startActivity(intent);
        System.exit(0);
        return true;

    default:
        return super.onOptionsItemSelected(item);
    }
}
于 2012-04-05T05:43:57.427 回答
0

编辑您的代码:调用 finish() 以销毁第一个活动

Intent b = new Intent(nowActivity.this, About.class);
startActivity(b);
finish();
return true;
于 2012-04-05T04:20:30.567 回答
0

当用户单击您的“关闭”按钮时返回主屏幕怎么样?

以下代码摘自: How to return to home screen from Activity

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
于 2012-04-05T04:28:45.203 回答