Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android BroadcastReceiver无法明显启动活动_Android_Broadcastreceiver - Fatal编程技术网

Android BroadcastReceiver无法明显启动活动

Android BroadcastReceiver无法明显启动活动,android,broadcastreceiver,Android,Broadcastreceiver,我有一项服务,必须启动某项活动。我创建了一个BroadcastReceiver,它通过以下代码调用活动(它不是主活动): Intent intent = new Intent(context, DataActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK ); Log.w("DEBUG","Activity started. Context: "+context.getClass().toString())

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

 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"
我在手机的菜单上等待活动的显示。什么也没发生。当我切换到我的应用程序时,活动变为可见并继续。这是一个问题,我必须使活动在广播接收器启动时立即可见


你知道该怎么做吗?

发送广播很弱

活动必须直接从服务内部开始

与此相反:

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);

您是否将服务绑定到应用程序?这应该已经可以正常工作了。我没有绑定它,因为我的服务应该在应用程序被终止时仍在运行。我得到了一个应用程序,其中我有一个服务,可以保存/处理buttonClickReceiver,它可以启动自定义活动。这就是你要找的吗?我的目标很简单:不管主应用是什么,我的服务都应该保持运行。但是,当服务启动活动时,它应该立即弹出,而不是停留在后台。