从其他应用启动Activity时,Android会延迟

时间:2015-01-08 04:41:27

标签: android android-activity

我有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。

感谢您的帮助!

2 个答案:

答案 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秒的延迟。