android:launchMode=";“单实例”;使应用程序速度非常慢
我的应用程序中有2个活动。A活动是启动器活动。当我第一次运行应用程序时,启动程序活动将运行,但当我按下home按钮并通过单击应用程序图标从那里重新启动应用程序时,我始终会运行B活动。android:launchMode=";“单实例”;使应用程序速度非常慢,android,android-launcher,Android,Android Launcher,我的应用程序中有2个活动。A活动是启动器活动。当我第一次运行应用程序时,启动程序活动将运行,但当我按下home按钮并通过单击应用程序图标从那里重新启动应用程序时,我始终会运行B活动。 我想确保启动应用程序时始终运行活动A 这是清单代码: <application android:icon="@drawable/icon" android:label="@string/app_name" > <activity
我想确保启动应用程序时始终运行活动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”的任何选项。请帮助我。提前谢谢。您可以尝试在B活动中重写onUserLeaveHint()方法(这将注册主页按钮按下事件),然后创建意图
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);
这并不是一个理想的解决方案
编辑:
是的,sry,最好的解决方案是调用B活动的finish()inside onPause()方法对不起,先生,但我需要一个我应该依赖的答案。检查编辑并删除android:launchMode=“singleInstance”先生,我不能在onPause()内使用finish()B活动的方法,因为在任何调用将到达设备的情况下,将调用onPause(),用户将不得不重新启动整个过程。您能建议我处理home按钮单击的方法吗?是的,您可以在onUserLeaveHint()中输入finish只有在按下“主页”按钮时才会调用。这样一来,来电将不会完成活动,而只有“主页”按钮会处理“主页”按钮按下或“后退”按钮按下,因为它也会处理“后退”按钮按下,这可能会给我造成问题。