按“关闭”后不要再次启动应用程序

时间:2012-04-05 04:15:25

标签: android eclipse android-activity

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

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

这段代码完美无缺,但它似乎使它在现有活动之上开始了一项新活动。

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

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

提前致谢。

3 个答案:

答案 0 :(得分: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);
    }
}

<强> About.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);
    }
}

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);