按下主页键后,我真的有活动启动的东西。假设我有三个A,B,C活动,我禁用设备上的背压。假设A是我的主要启动器活动,我从A移动到B和B移动到C并按下主页键并再次单击图标然后它始终启动A即启动器。但是当我按下C上的主页键然后点击图标应该始终以C Activity开头时我不想这样。如果我按下B活动上的主页键,则总是想要点击图标打开B动作。如何做到这一点。
还有一件事,我不明白安装完成后它有两个选项DONE和OPEN。所以当按下Done时,它在带有当前活动的home的按键上工作正常,但是当以OPEN开始时,它总是启动A活动,在任何当前活动按主页键后点击图标启动一个。
如何解决这个问题?谢谢你们
Manifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sunil.apiv2map"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.sendmyposition.A"
android:configChanges="orientation|keyboardHidden|screenSize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.sendmyposition.B"
android:configChanges="orientation|keyboardHidden|screenSize" >
</activity>
<activity
android:name="com.example.sendmyposition.C"
android:configChanges="orientation|keyboardHidden|screenSize" >
</activity>
</application>
</manifest>
致电行为A至B
Intent intent = new Intent(A.this, B.class)
startActivity(intent);
finish()
并将B调用到C
Intent intent = new Intent(B.this, C.class)
startActivity(intent);
答案 0 :(得分:1)
您可以使用Preferences执行此操作...包
android.preference
提供管理应用程序首选项和实现首选项UI的类。使用这些可确保每个应用程序中的所有首选项以相同的方式维护,并且用户体验与系统和其他应用程序的用户体验保持一致。
您可以在SharedPreferences
中保存当前活动名称(字符串),然后在应用程序启动后在MainActivity
中读取此字符串以打开上次打开的活动。
在这里查看 jukas 回答:How to start another Activity as main and launcher after Deploying the application into device
或者你可以从这里使用这个PoC:How to return to the latest launched activity when re-launching application after pressing HOME?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
// Activity was brought to front and not created,
// Thus finishing this will get us to the last viewed activity
finish();
return;
}
// Regular activity creation code...
}