我有2个应用。 App A和App B只有BActivity(App B的包是:com.ts.share)。 从应用程序A,我想启动应用程序B. 在App A中,我打电话给
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.ts.share");
LaunchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( LaunchIntent );
工作正常。
在B处,如果退出B,请转到A,然后再次呼叫。启动App B需要0秒。
但是在B,按Home键,转到A,再次拨打电话。启动App B花了3秒钟。
我想立即开始App B。
感谢您的帮助!
答案 0 :(得分:0)
试试这个..
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.ts.share");
LaunchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( LaunchIntent );
}
}, 0);
答案 1 :(得分:0)
在你的第二个场景中,当你从A开始时B已经在运行。在这种情况下,因为你已经指定了Intent.FLAG_ACTIVIY_CLEAR_TOP
,它需要完成在B之前仍然处于活动状态的现有活动。可以在B中实例化一个新的活动。您可能在B中的活动(或活动)的finish()
,onPause()
,onStop()
或onDestroy()
中有代码造成3秒的延迟。