BroadcastReceiver无法明显启动活动

时间:2013-10-23 13:49:08

标签: android broadcastreceiver

我有一项必须启动某项活动的服务。我创建了一个BroadcastReceiver,它通过以下代码调用Activity(它不是主要活动):

 Intent intent = new Intent(context, DataActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
    Log.w("DEBUG","Activity started. Context: "+context.getClass().toString());
    context.startActivity(intent);

我也在清单中设置:

android:launchMode="singleTop"

我在手机的菜单中等待活动显示。没啥事儿。当我更改为我的应用时,活动变得可见并且恢复。这是一个问题,我必须在BroadcastReceiver启动时立即显示活动。

知道该尝试什么?

1 个答案:

答案 0 :(得分:0)

发送广播很弱。

活动必须从服务内部 直接 启动。

而不是:

Intent broadcastIntent = new Intent();
     broadcastIntent.setAction(DataBroadcastReceiver.ACTION_RESP);
     broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
     sendBroadcast(broadcastIntent);

在服务中使用此功能:

 Intent intent = new Intent(getApplicationContext(), DataActivity.class);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      getApplicationContext().startActivity(intent);