Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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 将数据从接收器传递到活动_Android_Broadcastreceiver - Fatal编程技术网

Android 将数据从接收器传递到活动

Android 将数据从接收器传递到活动,android,broadcastreceiver,Android,Broadcastreceiver,我真的被卡住了。经过测试,有很多不同的方法。我在问这个问题。 我正在尝试制作一个应用程序,它应该在特定的日期和时间提醒用户,就像你以前肯定见过的许多其他应用程序一样。我正在使用广播接收器,因为它应该。我在manifest中注册它,以便在应用程序第一次安装和重新启动手机后激活它,但问题出在android 3.1中-taskkillers可以杀死这个接收器,所以我认为每次打开应用程序时再次激活它会更好,但问题是我不知道我创建了多少个实例,所以第一次问题是: 如何获取活动接收器 这样我就可以做出决定了

我真的被卡住了。经过测试,有很多不同的方法。我在问这个问题。 我正在尝试制作一个应用程序,它应该在特定的日期和时间提醒用户,就像你以前肯定见过的许多其他应用程序一样。我正在使用广播接收器,因为它应该。我在manifest中注册它,以便在应用程序第一次安装和重新启动手机后激活它,但问题出在android 3.1中-taskkillers可以杀死这个接收器,所以我认为每次打开应用程序时再次激活它会更好,但问题是我不知道我创建了多少个实例,所以第一次问题是:

  • 如何获取活动接收器
  • 这样我就可以做出决定了。如果它未激活,则我可以再次激活它。 我在onReceive中所做的是:从数据库中获取数据,并将时间和日期与现在进行比较。如果应用程序未打开,我想在通知区域通知用户,并将额外数据传递给运行良好的应用程序。但如果应用程序处于打开状态,我不想在通知区域通知用户,而是想将数据传递给活动并在我的应用程序中提醒用户。我将我的activity设置为singleTask,并使用startActivity将数据传递给activity,我还使用OnneWinEvent方法处理新数据,但问题是,如果用户正在使用另一个activity,该怎么办。第二和第三个问题是:

  • 如何知道我的应用程序是否已打开?(我使用了ActivityManager.getRunningTasks,但我意识到这不是一个好的解决方案,因为它是任务管理器应用程序的api。)

  • 如何将数据从接收器传递到我的活动?(我使用接口将数据从片段传递到活动,所以我认为它可以在这里使用,但在这里不起作用)


  • 经过大量的努力-阅读和尝试-我知道我仍然做错了,所以请指导我。

    我建议您从广播接收器启动ServiceIntent。从那里你可以发送一个你可以在活动中捕捉到的意图

    好的,没有人回答我的问题,但我自己知道了,所以这里是我自己的答案:

  • 每个接收器只有一个实例,您可以启用或禁用它。因此,为了确保它正常工作,您可以在每次运行时在活动中启用它

  • 在onReceive中,启动一个服务,并在活动中将该活动与此服务绑定,这样在onBind和onUnbind方法中,您可以更改布尔值并对其做出决策。在onBind中,将值设为True,这意味着您的应用程序已打开,而在onUnBind中,则相反

  • 最后,将数据从服务传递到活动的最佳方式是使用接口


  • 现在,我的应用程序工作正常。希望对您有所帮助并节省他人的时间。

    实际上我现在正在尝试,但问题是我可以从活动中调用服务中的方法,但我想要相反的结果。你能告诉我怎么做吗?你可以用几种方法。您可以在活动中放置广播接收器,并从服务发送广播。您可以使用活页夹,也可以发送挂起的意图,并将其放入活动内容中。查看IntentService的文档