android–Receiver在奥利奥停止接收

android–Receiver在奥利奥停止接收,第1张

概述我理解服务等因此受到限制,因此我的接收器已停止在AndroidOreo中工作.我有这个代码启动服务–Intentintent=newIntent(this,MyService.class);intent.putExtra("Time",locationUpdatesTime);intent.putExtra("Dist",locationUpdatesDistance);startService(intent)

我理解服务等因此受到限制,因此我的接收器已停止在Android Oreo中工作.

我有这个代码启动服务 –

Intent intent = new Intent(this, MyService.class);intent.putExtra("Time", locationUpdatesTime);intent.putExtra("dist", locationUpdatesdistance);startService(intent);

我在我的服务中有这个 –

Intent intent = new Intent();intent.setAction("com.androIDandyuk.laptimerbuddy");intent.addFlags(Intent.FLAG_INCLUDE_StopPED_PACKAGES);intent.putExtra("Lat", thisLat);intent.putExtra("Lon", thisLon);sendbroadcast(intent);

但我的接收器从未被调用过.搜索过后,我想我必须注册我的接收器,但我无法弄清楚我是如何使用正确的语法对其进行编码的.有人可以帮忙吗?

如果你想投票给我,我会很感激,如果你会评论为什么,所以我可以学习,因为我找到了答案,找不到/理解它,我想我已经提出了问题,因为我应该:-)

非常感谢!

更新尝试使用LocalbroadcastManager.

在MainActivity我有 –

broadcastReceiver mMessageReceiver;

onCreate我有 –

mMessageReceiver = new broadcastReceiver() {        @OverrIDe        public voID onReceive(Context context, Intent intent) {            // Get extra data included in the Intent            String message = intent.getStringExtra("message");            Log.i("receiver", "Got message: " + message);        }    };    LocalbroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("custom-event-name"));

在我的服务中,onLocationChanged

    Log.i("sender", "broadcasting message");                Intent intent = new Intent();                intent.setAction("custom-event-name");                intent.putExtra("message", "This is my message!"); LocalbroadcastManager.getInstance(getApplicationContext()).sendbroadcast(intent);

这是因为我看到发件人消息.

我究竟做错了什么?

解决方法:

从AndroID Oreo开始,接收器必须使用context.registerReceiver(receiver,intentFilter)在运行时注册;接收隐含意图

您仍然可以接收显式意图和一些特殊的隐式 *** 作,例如boot_completed或locale_changed

更多信息,请访问https://developer.android.com/about/versions/oreo/background.html#broadcasts

总结

以上是内存溢出为你收集整理的android – Receiver在奥利奥停止接收全部内容,希望文章能够帮你解决android – Receiver在奥利奥停止接收所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存