0

我有一个必须启动某个活动的服务。我创建了一个 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 启动时立即可见。

知道要尝试什么吗?

4

1 回答 1

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);
于 2013-10-23T17:21:41.563 回答