我的应用中有2个活动。 A活动是发射器活动。当我第一次运行应用程序时,启动器活动会运行,但是当我按下主页按钮并通过单击应用程序图标从那里重新启动应用程序时,我总是让B活动运行。
我想确保在启动应用程序时应始终运行活动A.
这是清单代码:
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name="com.velosys.smsManager.Activities.a"
android:launchMode="singleInstance"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.velosys.smsManager.Activities.b" />
</application>
使用android:launchMode="singleInstance"
符合我的目的,但它使得从一个活动到另一个活动的移动真的非常慢。你可以建议我任何选择`android:launchMode =“singleInstance”。请帮助我。谢谢你提前。
答案 0 :(得分:2)
您可以尝试覆盖B活动中的onUserLeaveHint()方法(这将注册Home按钮事件),然后创建意图
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(startMain);
这不是一个理想的解决方案
编辑:
是的,最好的解决方案是你在B活动的onPause()方法中调用finish()