在Android中退出NavUtils的应用程序

时间:2014-01-22 06:41:23

标签: java android android-activity activity-finish

我有许多活动,必须遍历导航抽屉中的所有活动。我想从主屏幕退出应用程序是否有许多尚未完成的活动。为此我使用了NavUtils,因为我们可以从“NavUtils.navigateUpFromSameTask(MyClass.this)”方法转移到父活动。例如,我在这里有两个活动splashScreen.class和ManinActivity.class我通过完成splashScreen& amp;来自splashScreen活动的startactivity splashscreen是MainActivity&的父类。通过从mainactivity退出应用程序,应用程序在一些手机中完成,但在某些手机中,应用程序转到父活动的onCreate方法,所谓的splashScreen.I不明白为什么会发生这种情况。如果你知道更好的程序或者我是谁,请帮助我这里做错了是我从MainActivity退出应用程序的代码:

NavUtils.navigateUpFromSameTask(MainActivity.this);

我从splashScreen启动MainActivity,如下所示:

public void StartMainActivity()
{
    Intent mainActivity = new Intent(splashScreen.this,MainActivity.class);
    startActivity(mainActivity);
    finish();
}

这里是清单代码:

<activity
        android:name=".MainActivity"
        android:label="StoneAge"
        android:parentActivityName="com.experlabs.brandappy.splashScreen">
        <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.experlabs.brandappy.splashScreen" />
    </activity>

2 个答案:

答案 0 :(得分:1)

当您决定退出应用时,您可以通过做两件事来做到这一点

  1. 将特定的resultCode设置为意味着QUIT_APP的活动并完成活动

  2. 在你的所有活动中覆盖onActivityResult的函数(或者继承一个) 并为resultCode QUIT_APP重复步骤a。

  3. 基本上它会级联您的所有活动

    编辑:

    也在你的代码中调用startActivityForResult而不是startActivity。 有关详细信息,请参阅此https://stackoverflow.com/a/1124988/1393632

答案 1 :(得分:0)

我已经完成了这个。你可以通过制作像DashBoard这样只在Oncreate方法中调用finish()方法的活动来完成你的应用程序。在你想要退出你的应用程序的地方,你可以像这样在意图中输入Flag_Activity_Clear_Top和Flag_Activity_New_task:

Intent intent = new Intent(MainActivity.this, DashBoardActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();

并且你想通过跳过活动之间来调用任何先前的活动你可以在xml中提到的父活动中添加该活动,当你必须导航时只需输入代码:

NavUtils.navigateUpFromSameTask(this);