问题标签 [broadcastreceiver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1335 浏览

android - 如何使用接收者android的意图

我有一个可以工作的 SMS 接收器,但是当我尝试使用以下方法加载另一个类时:

我收到此错误:

构造函数 Intent(SMSReceiver, Class) 未定义

对于第一行和:

方法 startActivityForResult(Intent, int) 未定义 SMSReceiver 类型

第二行

我真的很感激一些关于出了什么问题的建议。

0 投票
1 回答
600 浏览

android - android中回调函数的设计问题

我目前正在 android 中开发一个正在访问 wifi 值的应用程序,也就是说,该应用程序需要扫描所有接入点及其特定的信号强度。我知道我必须扩展类,BroadcastReceiver覆盖BroadcastReceiver.onReceive(Context context, Intent intent)值准备好时调用的方法。
也许存在由 android 系统本身提供的解决方案,但我对 android 比较陌生,所以我需要一些帮助。
我遇到的问题是我有一个类(一个活动,因此由用户控制)需要这个扫描结果来处理两个不同的事情(首先将值保存在数据库中,或者第二个,将它们用于进一步计算,但不能同时使用两者在某一刻!)那么如何设计回调系统以便“传输”扫描结果onReceive(Context context, Intent intent)到用户预期的操作?我的第一个解决方案是为每个对 wlan 感兴趣的类在查询值时必须提交的用例(保存或用于计算)定义枚举。但这会迫使BroadcastReceiver扩展类保存当前枚举并将其用作查询类的回调函数中的参数(这个查询类需要知道它在被回调时要求什么)
但这在我看来有点脏; )
所以有人对此有个好主意吗?

0 投票
0 回答
297 浏览

android - Android:无法在通知中声明要从 pendingIntent 触发的意图;在广播接收器中完成

我想在广播接收器中发送通知。通知应启动默认短信应用程序。

最终,我想为传入的短信创建自己的通知,与默认应用程序、Handcent 和 Chomp 所做的一致。

我有检测传入短信的 threadId 的代码。

如何制作附加到通知的 pendingIntent 的意图?

下面显示了如何启动打开特定线程的 sms 应用程序,但 Intent 在我初始化它时会创建一个空指针。是因为它是在广播接收器中初始化的,而不是活动?

如何在android中打开特定的短信

0 投票
1 回答
1292 浏览

android - 将 BroadcastReceiver 设置为非活动状态

我在接收 SMS 接收事件的 Android 应用程序中设置了 BroadcastReceiver。这很好用,但我希望能够通过打开和关闭 BroadcastReceiver 来打开和关闭 SMS 接收。因为如果我在 onReceive 方法中有一个简单的布尔值,即使 SMS 接收关闭,我的应用程序也会启动。

这可能吗?

干杯!

0 投票
3 回答
17507 浏览

android - AlarmManager 和 BroadcastReceiver 而不是 Service - 这很糟糕吗?(超时)

背景资料:

即使我的应用程序关闭,我也需要大约每小时左右更新一次网络上的一些数据。数据本身的更新大约需要 40 秒到 1 分钟。然后将其保存为可序列化的文件。我的应用程序启动时会读取此文件。

这是我目前采取的方法(不使用服务)

像这样使用 AlarmManager 和 BroadcastReceiver :

我的RepeatingAlarmReceiver_REFRESH_DATA.class负责从 Web 更新数据:

在清单中我有:

问题 :

警报按时触发并开始更新,但大约 10 秒后它停止(超时):

06-25 11:55:05.278: WARN/ActivityManager(76): 广播 BroadcastRecord{44bb4348 null} 超时-receiver=android.os.BinderProxy@44bcc670

06-25 11:55:05.278:WARN/ActivityManager(76):超时期间的接收器:ResolveInfo{44bb42c0 com.cousinHub.myapp.RepeatingAlarmReceiver_REFRESH_DATA p=0 o=0 m=0x0}

06-25 11:55:05.278: INFO/Process(76): 发送信号。PID:819 SIG:9

06-25 11:55:05.298: INFO/ActivityManager(76): 进程 com.cousinHub.myapp:remote (pid 819) 已经死亡。

ps:奇怪的是,这个“超时”在我的 HTC Hero(仍然在 Android 1.5 - API 级别 4 上)大约 10 秒后不会发生,但在我的 Nexus One(2.1-update1)上很好

问题 :

  1. 为什么这个超时?有什么简单的方法可以避免这种情况吗?
  2. 我是否在清单中正确设置了我的 BroadcastReceiver ?我需要添加一些东西(以避免这种超时)吗?
  3. 我绝对应该为这种“从 Web 刷新”功能寻求服务吗?(考虑这篇文章:http ://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/ )如果是(我应该切换到服务):任何好的代码片段/本教程...

一如既往,感谢您的帮助。

H。

0 投票
1 回答
13669 浏览

android - 如何从广播接收器通知正在运行的活动?

我有一个活动,它需要响应广播事件。由于一个activity不能同时是一个广播接收器,所以我做了一个广播接收器。

我的问题是:如何通知广播接收器的活动?我相信这是一种常见的情况,那么有没有设计模式呢?

0 投票
1 回答
3809 浏览

android - Android 将数据从 Activity 传递到 BroadcastReceiver 显示 null

我有一个使用 AlarmManager 在特定时间点调用 BroadcastReceiver 的活动。这一切都很好,除了当我在调用 BroadcastReceiver 时尝试向意图添加一些额外的字符串时,它们总是在另一端显示为 null。

活动代码:

广播接收器代码

'teststring' 的内容总是null在 BroadcastReceiver 中,我做错了什么?

0 投票
1 回答
1690 浏览

android - AlarmManager 在模拟器中触发但不在物理设备上

我有一个调用 AlarmManager 的应用程序

在清单中我有强制性的条目

MyEventReceiver 看起来像这样

当警报被激活时,MyEventReceiver 应该被启动并做一些事情,即使我的应用程序没有运行。在模拟器中是这种情况,但在实际设备上并非如此。

例如,我将在模拟器上启动 MyApplication,在 DDMS 中我可以看到 MyApplication 的运行过程。我在 MyApplication 中添加了一个警报,然后在 DDMS 中终止了 MyApplication 的进程。当警报触发时,MyEventReceiver 开始工作,在 DDMS 中我看到两个进程,MyApplication 和 MyApplication:remote。

在实际设备上,如果我启动 MyApplication,添加一个警报,然后在警报执行的时间到来时使用任务杀手终止进程,没有任何反应。如果我将设备连接到调试器并使用 DDMS 而不是设备上的任务杀手停止进程,那么警报将触发并按预期工作。

有人可以帮我理解为什么会这样吗?我的印象是,一旦安排了警报,它就会持续存在,除非重新启动设备。设备在警报应该执行时处于唤醒状态。

0 投票
5 回答
4597 浏览

android - 在广播接收器中保存数据

我想在广播接收器中维护一个哈希表。如果我目前了解 BroadcastReceiver 的生命周期,它可能会在清除我的成员变量时被杀死。从 BroadcastReceiver 中的上一次 onReceive 运行中检索哈希表的理想策略是什么?

0 投票
1 回答
2929 浏览

android - 查找哪些广播接收器已注册?

我有一个监控传入 SMS 的程序,我希望它可以全时监控它们,所以我用我创建的广播接收器 registerReceiver。问题是,如果我想取消注册该接收器,除非我知道我注册的原始 BroadcastReceiver 类,否则我不能。如果我将它设置为在程序停止时停止,这不是问题,但我希望接收器继续运行,仅在用户指定时停止。

编辑:或者有没有办法“存储”我创建的 BroadcastReceiver 类,这样当 onDestroy 被调用时,它可以被保存,而当再次调用 create 时,它​​可以被拉出。

有没有办法做到这一点?