我有许多活动,必须遍历导航抽屉中的所有活动。我想从主屏幕退出应用程序是否有许多尚未完成的活动。为此我使用了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>
答案 0 :(得分:1)
当您决定退出应用时,您可以通过做两件事来做到这一点
将特定的resultCode设置为意味着QUIT_APP的活动并完成活动
在你的所有活动中覆盖onActivityResult的函数(或者继承一个) 并为resultCode QUIT_APP重复步骤a。
基本上它会级联您的所有活动
编辑:
也在你的代码中调用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);