Java 重新启动应用程序后重新打开上次打开的活动
我需要能够在应用程序关闭和手机重启后重新打开上次打开的活动 我指的是和。在第二个链接中,我在标记答案的评论中遇到了与OP相同的问题,但解决方案对我不起作用Java 重新启动应用程序后重新打开上次打开的活动,java,android,android-activity,Java,Android,Android Activity,我需要能够在应用程序关闭和手机重启后重新打开上次打开的活动 我指的是和。在第二个链接中,我在标记答案的评论中遇到了与OP相同的问题,但解决方案对我不起作用 我可以在上次打开的活动中启动应用程序,但单击以前的活动会返回一个空白屏幕。按照第二个链接的建议将finish()添加到DispatcherActivity后,它会关闭应用程序并显示一条日志消息: W/IIInputConnectionWrapper:在非活动InputConnection上显示状态图标 我已经搜索了该错误的解决方案,但它们涉及
我可以在上次打开的活动中启动应用程序,但单击以前的活动会返回一个空白屏幕。按照第二个链接的建议将finish()添加到DispatcherActivity后,它会关闭应用程序并显示一条日志消息: W/IIInputConnectionWrapper:在非活动InputConnection上显示状态图标 我已经搜索了该错误的解决方案,但它们涉及使用“connection.close()”或与此无关的HTTP问题 我也尝试过类似的替代方案,但它们也不起作用 关于重新启动手机后重新打开上次打开的屏幕,声明onSavedInstanceState不适用于重新启动的手机 这是我的AndroidManifest的代码
<activity
android:name=".Activity.TakeoverMainActivity">
</activity>
<activity android:name=".Activity.TakeoverNextActivity" />
...
<activity android:name=".Activity.DispatcherActivity"
android:launchMode="singleTop"
android:windowSoftInputMode="stateVisible|adjustResize"
android:alwaysRetainTaskState="false">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
如有任何解决方案或建议,将不胜感激。多谢各位
更新:SadiqMdAsif已经解决了我在评论中的问题。我的问题是,我在第二个活动中使用了finish(),而不是开始一个新的意图。你的意思是当用户再次打开应用程序时打开上一个活动吗?“但单击上一个活动会返回一个空白屏幕。”这意味着什么?@SadiqMdAsif是一个完全白色的空白活动。我在问题中提到的第二个链接的回答者说,这是因为DispatcherActivity为空,所以它显示DispatcherActivity。你的意思是
backbutton
press?然后,覆盖on backpressed
方法以切换到所需的活动
@SadiqMdAsif not backbutton。我从第一个活动启动应用程序,单击第二个活动,然后在第二个活动关闭应用程序。我重新打开应用程序,它将加载第二个活动。如果我单击按钮转到第三个活动,它会正确显示,但是如果我单击按钮转到第二个活动的第一个活动,它是白色活动。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dispatcher);
Class<?> activityClass;
try {
SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
activityClass = Class.forName(
prefs.getString(LAST_ACTIVITY, TakeoverMainActivity.class.getName()));
} catch(ClassNotFoundException ex) {
activityClass = TakeoverMainActivity.class;
}
Intent intent = new Intent(this, activityClass);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
@Override
protected void onPause() {
super.onPause();
SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
SharedPreferences.Editor activityEditor = prefs.edit();
activityEditor.putString(LAST_ACTIVITY, getClass().getName());
activityEditor.commit();
}