关于android broadcastReceiver&& amp; context.startActivity()

时间:2012-07-15 11:39:57

标签: android android-activity broadcastreceiver android-context

@Override
public void onReceive(Context context, Intent intent) {
    Log.i("TEST", "user is present");
    Intent i = new Intent(context, MainActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);
}

我希望在收到意图后立即启动我的应用程序的MainActivity,但是在我看到日志“用户存在”之后大约3秒后启动MainActivity,而不是立即启动。 我需要立即开始以获得更好的用户体验。

我想知道有没有办法可以让MainActivity更快启动?

  

PS:当我在另一个活动中使用一个按钮来启动MainActivity时,它立即启动,是否可能是BroadcastReceiver中的方法“context.startActivity(i)”更慢?

1 个答案:

答案 0 :(得分:1)

您可以添加到Intent对象的标志,可以帮助您实现目标。此外,当用户在场时,仅在设备解锁后(提示)

<强>更新

显然意图标志不再出现在API中,令人失望。然而;使用KeyguardManager可以实现此功能,作为解决问题的一部分。