问题标签 [android-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 回答
2147 浏览

android - BroadcastReceiver 中的依赖注入

将 Singleton 注入到 BroadcastReceiver 是一种好习惯吗?

更具体地说,假设我有如下单例:

还有一个广播接收器:

实际上它有效,但我不确定这种情况可能导致的性能和可能的内存泄漏。对注入可能导致的性能和可能的滞后有任何想法吗?

0 投票
0 回答
737 浏览

android - 广播接收器执行多次

我有一个问题,我BroadcastReceiver的注册数次。

我的应用程序中有一个CountDownTimer对象Application。之所以在这个类中,是因为一旦启动,用户应该能够在倒计时的同时移动到其他活动。

一旦CountDownTimer倒计时,我就会启动LocalBroadcast某个Activity注册接收的。

除了onReceive被称为多次之外,一切正常。例如,如果用户CountDownTimer在 Activity1 中启动,然后移动到 Activity2,然后返回到 Activity1,onReceive则调用两次。

launchModeActivity 的 设置为并SingleInstance设置noHistorytrue。这是我尝试只拥有一个注册 Activity 的实例,并希望拥有一个接收器。

这是我CountDownTimerApplication对象:

这就是我初始化、注册和注销接收器的方式:

这是我的意图LocalBroadcast

仅当在课堂上运行onCreate时,我才调用以下内容:CountDownTimerApplication

.

我的问题是如何确保在任何时候都只有在 Receiver 上注册?

我希望用户能够在运行时多次启动 Activity,CountDownTimer但只onReceive运行一次。

0 投票
1 回答
119 浏览

android - 我应该在何时何地注销广播接收器?

aAsyncTask在代码中如下所示,它的任务是启用蓝牙适配器。在 onPreExecute 中,我注册了该操作ACTION_STATE_CHANGED以获取有关蓝牙适配器电源状态的通知(打开、关闭、打开、关闭)。该接收器在onPreexecute“以便当异步任务完成时取消注册接收器”和取消注册“以便如果按下后退按钮,任务将被取消并且接收器应该被取消注册”中未注册。

但是,当任务正在运行并且我按下后退按钮取消正在运行的任务时,尽管接收器未在onCancelled.

为什么会发生这种情况以及如何解决?

代码

异步任务

日志猫

0 投票
1 回答
71 浏览

android - 从 WakefulService 启动 IntentService

我有一个广播接收器表单,我正在使用它启动一个意图服务(比如 s1)startWakefulSerivce(context,i).

从服务 s1 我开始使用另一个 IntentService(比如 s2)startService(i)。在 s1 我正在释放唤醒锁

现在第二个 IntentService s2 将保持唤醒锁,即,如果设备休眠,它将在后台运行。如果不是,我怎样才能像第一个一样清醒地启动第二个 Intent Service s2?

0 投票
2 回答
2370 浏览

android - 使用带有广播接收器的服务的 Android Sip 来电

海每个人实际上都在尝试创建一个应用程序,该应用程序支持基于 SIP 在互联网上进行音频呼叫,这里使用的是本地 sip,我遇到了来电问题,我已经完成了服务的注册部分,但是在接听电话时,我无法接听电话,请帮帮我

在这里,我附上了我的广播接收器文件广播接收器文件

在这里我附上了我的传入屏幕源代码incomingscreen

这是我的错误日志

请帮我解决

0 投票
1 回答
1114 浏览

android - 从广播接收器接收广播意图时出错

我有一个广播接收器,在 onRecive 中我执行 Asynctask,当执行时,在 preExecute 中,我显示一个对话框作为忙碌指示器。在运行时,当 AsyncTask 执行时,我收到以下 logcat 错误,为了修复该错误,我尝试将 getApplicationContext() 作为对上下文的引用传递给 asyncTask 的构造函数,但我仍然收到相同的错误

请让我知道如何解决该错误

代码

日志猫

0 投票
1 回答
105 浏览

android - 我已经在广播接收器类中实现了此代码,以通知用户在充电时不参加通话....但它不起作用

我为来电接收器实现的上述代码..

0 投票
1 回答
1228 浏览

android - 向不在前台的 Activity 发送广播

我有一个具有 CountdownTimer 的后台服务。随着 CountdownTimer 倒计时,我向 Activity 发送广播。当 CountdownTimer 倒计时时,Activity 会收到警报,我可以停止服务并取消注册接收器。

我已将正常的接收器注销方法从 onStop 和 onPause 移到我自己的方法中,一旦收到带有“timer_finished”的广播,我就会调用该方法。这样我就可以在不注销的情况下离开 Activity。

如果用户当前正在查看 Activity,则一切正常。如果用户离开 Activity,则 CoundownTimer 仍在运行,但 Activity 没有接收到广播。

我该如何做到这一点,以便 Activity 接收最终广播“timer_finished”?

.

0 投票
1 回答
235 浏览

android - Android 在后台运行进程

我正在制作一个使用 BroadcastReceiver 和 WakefulServiceIntent 的应用程序,每 10 分钟在我的应用程序中调用一个方法。问题是,有时它会调用它,有时它不会。我需要每 10 分钟调用一次此方法,即使应用程序正在后台运行或屏幕已关闭。我当前的代码如下。我不应该使用 AlarmManager 来启动计时器吗?我听说 AlarmManager 不准确,但不准确到它甚至不响的地方?

AlarmManager 启动代码:

广播接收器类:

}

WakefulIntentService 类:

}

0 投票
1 回答
136 浏览

android - 如何更新片段屏幕android中的活动方法?

我在片段活动中有方法,如果该方法触发,我需要更新片段列表视图。我正在处理数据库。我在哪里清除特定用户的数据库,我将更新片段。

问题是:如果用户在同一个屏幕上,如果片段活动方法触发,如何更新片段列表视图?它仅在我需要返回活动并再次需要进入同一屏幕时才有效。

这是代码:

FragmentExpertLiveChats:

如果电话在 FragmentExpertLiveChat 屏幕中没有执行任何操作,并且如果活动调用中的方法,如何更新该行?我需要使用广播接收器吗?如果是,在哪里以及如何?