当前位置: 首页 > 知识库问答 >
问题:

当广播服务接收到启动活动的请求时,是否可以从广播服务启动android活动?

穆丁雨
2023-03-14
public class RestartService extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            context.startForegroundService(new Intent(context,ApplicationStaterService.class));
        } else {
            context.startService(new Intent(context,ApplicationStaterService.class));
        }
        Log.i("Form BrsdCast","Run");

        boolean shouldStart = intent.getBooleanExtra("startAct",false);
        String url = intent.getStringExtra("urlData");
        assert url != null;
        Log.i("Form BrsdCast",url);
        if (shouldStart && !url.isEmpty()){
            Log.i("Form_BrsdCast",url);
            launchAct(url,context);
        }
    }

    private void launchAct(String url,Context context) {
        Intent intent = new Intent(context,Check.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
        Toast.makeText(context, "TESTDDDDD", Toast.LENGTH_SHORT).show();
    }

}

每当它收到消息时,它都会在后台运行,即使应用程序没有运行,它也应该从后台启动活动

共有1个答案

江迪
2023-03-14

您必须允许在其他应用程序上显示

如何以编程方式授予android中的“使用其他应用”权限?

 类似资料:
  • (与我刚刚发布的另一个问题略有不同,如果这违反了规则,请道歉) 在我的活动1中,我正在设置一些共享首选项,接下来我将通过意图启动另一个活动2,并从中设置一些文本视图。。。这一切都很好。 这就是我的问题。在我的第一个活动1中,我有一个带有挂起意图的警报管理器,这个挂起意图是一个用于锁定手机的广播接收器,然后启动活动2。这个活动和上面提到的第二个活动是一样的。但是,当此活动从启动时,没有任何文本视图从

  • 即使使用Intent,该活动也不会从引导完成的onRecture的广播接收器开始。FLAG_ACTIVITY_NEW_TASK没有帮助,仍然经历同样的错误。 原因:Android。util。AndroidRuntimeException:从活动上下文外部调用startActivity()需要标志_Activity_NEW_TASK标志。这真的是你想要的吗?

  • 我目前正在使用SharedReferences跟踪通过AlarmManager启动的BroadcastReceiver中要执行工作的项列表。除了一个特定的场景外,一切都很好。当我触发一个新项目来执行工作时,让它完成工作,然后删除该项目(全部通过SharedReferences编辑),它在应用程序运行时工作得很好。当列表中没有任何内容,我打开任务管理器并终止应用程序时,该项突然出现在Broadcas

  • 问题内容: 我的主要活动是启动服务(位置服务),我希望该服务在每次找到新位置时广播新位置。 多亏了日志,我知道该服务正在运行,并且每隔几秒钟便有新的位置,但我从未得到广播。 MainActivity.java CMBroadcastReceiver.java LocationService.java AndroidManifest.xml 我在日志中看到“已发送广播”,但从未收到“已接收广播” 任

  • 我有一个监控wifi连接的小部件,所以我启动了一项服务来启动广播接收器来检测网络变化。除了我退出主应用程序外,一切都正常:服务停止。 因此,我在小部件中启动了一个报警管理器,它几乎每分钟都会唤醒一次,并检查主应用程序是否已退出。如果是这种情况,我尝试重新启动我的wifi监控服务,但这次它崩溃了,并显示以下消息: 不允许开启服务Intent{cmp=包。CallbackNetworkWidgetSe

  • 如果我有一个名为MyService的服务,它看起来像这样,那么该服务的BroadcastReceiver会从“SendData”方法中重新获得它自己的广播吗??