接收方未注册异常错误?

2023-12-13

在我的开发者控制台中,人们不断报告一个错误,我无法在我拥有的任何手机上重现该错误。一个人留言说,当他们尝试打开我的电池服务的设置屏幕时,他收到了消息。正如您从错误中看到的,它表明接收器未注册。

java.lang.RuntimeException: Unable to stop service .BatteryService@4616d688:  java.lang.IllegalArgumentException: Receiver not registered: com.app.notifyme.BatteryService$BatteryNotifyReceiver@4616d9d0
at android.app.ActivityThread.handleStopService(ActivityThread.java:3164)
at android.app.ActivityThread.access$3900(ActivityThread.java:129)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2173)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Receiver not registered:com..BatteryService$BatteryNotifyReceiver@4616d9d0
at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:805)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:859)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
at com.app.notifyme.BatteryService.onDestroy(BatteryService.java:128)
at android.app.ActivityThread.handleStopService(ActivityThread.java:3150)

我注册是在我的 onCreate 中

@Override
public void onCreate(){
    super.onCreate();
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
    IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    filter.addAction(Intent.ACTION_POWER_CONNECTED);
    filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
    registerReceiver(batteryNotifyReceiver,filter);
    pref.registerOnSharedPreferenceChangeListener(this);
}

在 onDestroy 中注销并使用首选项侦听器注销

    @Override
public void onDestroy(){
    super.onDestroy();
    unregisterReceiver(batteryNotifyReceiver);

}

这是我在服务中的接收器

private final class BatteryNotifyReceiver extends BroadcastReceiver {

    boolean connected;
    @Override
    public void onReceive(Context context, Intent intent) {

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
        SharedPreferences.Editor edit = prefs.edit();

            updatePreferences(prefs);

        level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);



        if(intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)){
            connected = true;
        }else if(intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED)){
            connected = false;
        }else if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){

                if(level < lastLevel){
                    if(level > 40){
                        edit.putBoolean("first", false).commit();
                        edit.putBoolean("second", false).commit();
                        edit.putBoolean("third", false).commit();
                       edit.putBoolean("fourth",false).commit();                            
                        edit.putBoolean("fifth", false).commit();
                    }
                    if(level == 40){
                        if(!first){
                        notification(context,battColor,battBlink,battVib,battSound);

                        edit.putBoolean("first", true).commit();
                        }
                    }else if(level == 30){
                        if(!second){
                        notification(context,battColor,battBlink,battVib,battSound);

                        edit.putBoolean("second", true).commit();
                        }
                    }else if(level == 20){
                        if(!third){
                        notification(context,battColor,battBlink,battVib,battSound);

                        edit.putBoolean("third", true).commit();
                        }
                    }else if(level == 15){
                        if(!fourth){
                        notification(context,battColor,battBlink,battVib,battSound);

                        edit.putBoolean("fourth", true).commit();
                        }
                    }else if(level == 5){
                        if(!fifth){
                        notification(context,battColor,battBlink,battVib,battSound);

                        edit.putBoolean("fifth", true).commit();
                        }
                    }
                lastLevel = temp;
            }
        }           

        Intent i = new Intent(context,BatteryNotifyReceiver.class);
        context.startService(i);
    }       
}

知道为什么他们会收到这个错误吗?


您的问题的根源位于此处:

 unregisterReceiver(batteryNotifyReceiver);

如果接收者已取消注册(可能在您未包含在本文中的代码中)或尚未注册,请致电unregisterReceiver throws IllegalArgumentException。在您的情况下,您需要为此异常添加特殊的 try/catch 并忽略它(假设您不能或不想控制调用的次数unregisterReceiver在同一个接收器上)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接收方未注册异常错误? 的相关文章

  • 如何获取之前的碎片?

    为了在我的应用程序中重用某些片段 我需要知道哪个片段是返回堆栈上的第二个片段 为了做到这一点 我正在使用getFragmentManager getFragments 显示以下错误 但有效 FragmentManager getFragme
  • 通过 WhatsApp 发送消息

    由于我发现了一些较旧的帖子 表明 Whatsapp 不支持此功能 我想知道是否发生了变化 以及是否有办法打开与我通过意图发送的号码进行 Whatsapp 聊天 UPDATE请参阅https faq whatsapp com en andro
  • 自定义选择器活动:SecurityException UID n 无权 content:// uri

    我正在构建一个选择器应用程序来替换本机 Android 共享对话框 它工作正常 除非我尝试通过长按图像 gt 共享图像从 Chrome 共享图像 我发现 Google 没有捕获异常 它崩溃了 所以我可以通过 Logcat 查看它 在 Goo
  • 从 Android 代码设置的 SECRET_CODE

    我知道如何使用清单文件中的秘密代码 它与此源代码配合良好
  • 安卓定位不准确

    我正在尝试获取当前用户的位置 我试图重构我的代码以获得更好的结果 但我只是不断得到关于准确度的荒谬位置 它在 900 600 米之间 如何才能得到更好的结果 使其精度达到50m以内 这是我的代码 package com agam mapsl
  • 播放 SoundCloud 曲目

    我可以在 Android 应用程序中播放 SoundCloud 中的曲目吗 我正在尝试这段代码 但它不起作用 String res https api soundcloud com tracks 84973999 stream client
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • AudioTrack、SoundPool 或 MediaPlayer,我应该使用哪个?

    如果我需要能够 播放多个音频文件 具有不同的持续时间 例如 5 到 30 秒 独立设置右 左声道的音量 应用声音效果 如混响 失真 那么 我应该使用哪个 API 另外 我在 AudioTrack API 上找不到太多文档 有谁知道在哪里可以
  • 放置在 NavigationDrawer 顶部的片段

    我正在尝试添加一个PreferenceFragment在我的应用程序中 问题是 它自动放置在我的顶部NavigationDrawer public class SetPreferenceActivity extends Activity O
  • 在旋转时从错误的资源文件夹中提取可绘制对象

    在这里拉我的头发 因此 我正在使用一个具有多种类型的可绘制对象的应用程序 并且它们的结构如下 res Portrait resources drawable mdpi drawable hdpi drawable xhdpi Landsca
  • Android FragmentTransaction 自定义动画(未知动画师名称:Translate)

    我正在尝试让自定义动画与我的片段一起使用 我已按照在线教程进行操作 但出现以下错误 java lang RuntimeException 未知的动画师名称 翻译 动画的 XML 如下
  • java.lang.NumberFormatException: Invalid int: "3546504756",这个错误是什么意思?

    我正在创建一个 Android 应用程序 并且正在从文本文件中读取一些坐标 我在用着Integer parseInt xCoordinateStringFromFile 将 X 坐标转换为整数 Y 坐标的转换方法相同 当我运行该应用程序时
  • 按钮 - 单击时更改背景颜色

    我的活动中有 8 个按钮 我正在寻找的是 按钮具有默认背景 单击按钮时 背景颜色应更改为其他颜色 这部分非常简单 但是 当我单击任何其他按钮时 第一个按钮的背景颜色应该变回默认颜色 我知道这将使用 选择器状态 来完成 但我不太确定如何实现它
  • Android:RecyclerView 不显示片段中的列表项

    有人可以帮我尝试让我的 RecyclerView 出现吗 如果我不在片段中实现它 就会出现这种情况 然而 当我尝试将其实现到片段中时 CarFront 中的其他 XML 代码与 RecyclerView 分开显示 我的日志中收到此错误 E
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 获取其他指针的MotionEvent.getRawX/getRawY

    我可以获取其他指针的MotionEvent getRawX getRawY 值吗 MotionEvent getRawX API 参考 http developer android com reference android view Mo
  • 单元测试时 Android Studio 2.0 中测试状态终止且没有任何失败消息

    Issue 我昨天在 Ubuntu 上从 1 5 升级到了 Android Studio 2 0 当我在 Android Studio 2 0 中进行单元测试时 即使所有测试都已通过 它也会显示 终止测试 状态 有时它只显示部分测试通过 我
  • 在Android Studio gradle项目中使用NDK和STL

    我在将 stlport 链接到 Android Studio 中的 gradle 项目时遇到问题 使用 NDK 的 Eclipse Android 项目迁移到 Android Studio 该项目使用 STL 我有包含内容的 android
  • Android应用程序可以像旧的普通java小程序一样嵌入到网页中吗?

    我对 android 平台一无所知 也无法在互联网上找到这个基本问题的答案 更新 好的 我本身无法嵌入 Android 应用程序 但是我可以在 Android Webbrowser 中嵌入 Java 的东西吗 不可以 您无法将 Androi
  • Android 材料芯片组件崩溃应用程序。无法膨胀 xml

    Tried Chip来自两个支持库的组件 com google android support design 28 0 0 rc01和材料 com google android material material 1 0 0 rc01 堆栈

随机推荐

  • iOS 类似 Web UI [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我见过几个有趣的移动设备网页 UI 看起来像 iOS 设备 无法弄清楚 我怎样才能实现类似的外观和感觉 导航栏 滚动 缩放 全屏 甚至在之后立即显示新页面 单击工具栏中的选项卡之一
  • ASP.Net Core MVC RedirectToAction 在 returnUrl 前面附加控制器名称

    我正在开发 ASP Net core MVC 6 应用程序 我有一个 AppControler 作为我的初始控制器 如果用户尝试转到具有 Authorize 属性的操作 我会重定向到我的 AuthController 进行登录 并传入 re
  • Apache 2.4.23 PHP7.x Windows 10 x64 php_curl 不工作

    我试图将我的服务器升级到最新的 Apache 2 4 23 和 PHP 7 1 但无法加载 php curl 库 不知道为什么 PHP Warning PHP Startup Unable to load dynamic library e
  • 当物品完成重新绘制时我可以收到通知吗?

    我正在制作快照 通过ShaderEffectSource with live false 的项目 但我有时 200 例中有 1 例 得到空白快照 我正在根据这样的信号制作快照 Image onStatusChanged if status
  • 用户注册后创建产品

    用户注册后是否可以自动创建产品 我正在创建一种市场 因此当用户注册为供应商时 我希望 Woocommerce 自动创建具有以下规格的产品 产品名称 预订 the author meta display name 产品块 日历 the aut
  • 反序列化时如何以字符串形式获取 XML 节点值

    我正在将 XML 发送到 aspnet core web api 命名空间前缀的值cfdi 定义在包含节点中
  • 从 ListView 到其父级的冒泡滚动事件

    在我的 WPF 应用程序中 我有一个ListView whose ScrollViewer VerticalScrollBarVisibility被设定为Disabled 它包含在一个ScrollViewer 当我尝试在ListView 外
  • 读取 HttpURLConnection InputStream - 手动缓冲区或 BufferedInputStream?

    读取 HttpURLConnection 的 InputStream 时 是否有理由使用以下其中一项而不是另一个 我已经在示例中看到了两者的使用 手动缓冲器 while length inputStream read buffer gt 0
  • Firefox 中的日期问题

    我想将页面中的日期解析为 JavascriptDate 所以我的页面中有这个 span 01 07 2012 01 04 PM span 我有 Javascript 代码可以解析迄今为止的这个值 var tagText this html
  • 如果在 JFrame 之外,Java 中的工具提示会闪烁吗?

    我正在 Java 中实现 ToolTip 以便让用户更轻松地使用该产品 尽管位于 JFrame 边界并最终位于 JFrame 外部的工具提示开始 闪烁 我已经尝试了很多东西 比如移动工具提示 使其应该位于 Jframe 内 控制绘画 使其最
  • R中绘图的最佳拟合曲线

    我在一个名为 ph 的图中有一个概率密度函数 它是在 stackoverflow 用户的帮助下从两个数据样本中得出的 以这种方式 few lt read table outcome dat head TRUE many lt read ta
  • D3.js 组件中的样式未显示在 Angular 2 中

    我正在使用 Angular 2 和 D3 js 我想显示一个红色矩形 仅当我将样式放入样式 css文件 查看这个笨蛋 当我将样式放入组件中时styles 这是行不通的 查看这个笨蛋 当我使用组件时如何让它工作styles Thanks UP
  • 向 Windows Phone 7 模拟器添加更多音乐?

    模拟器有大约 3 首歌曲 这不足以确保我正在开发的歌曲选择代码能够管理超过上述 3 首歌曲 所以只是想知道这是否可能 不幸的是 无法将歌曲添加到模拟器中 您必须使用真实设备来测试这一点
  • 如何用括号外的逗号分割字符串?

    我得到了这样格式的字符串 Wilbur Smith Billy son of John Eddie Murphy John Elvis Presley Jane Doe Jane Doe 所以基本上它是演员姓名列表 可选地在括号中加上他们的
  • 当源文件路径更改时,如何保持项目的数据库连接?

    我正在使用一个微软Access数据库在我的项目中 保存到bin文件夹 当文件路径更改时 我该怎么做才能确保与该数据库的连接 导入 System Data OleDb 公开课Form3 Dim con 作为新的 OleDb OleDbConn
  • 在所有库中导入应用程序兼容性依赖项

    我的应用程序中有 2 个模块 我想修改它们以使用 AppCompat 小部件 我必须用相同的方式扩展它们 问题是我不想向它们中的每一个添加 appcompat 依赖项 那么我怎么可能向这两个模块和我的应用程序添加依赖项 如果我添加 comp
  • 如何防止点击标签时页面刷新?

    我需要将一个参数传递到 URL 中 同时阻止页面在单击任何一个时重新加载 a 带有空白的标签href属性 a href 有没有办法用 JS jQuery 来做到这一点 我已经有了这个 jQuery list group item a cli
  • SQL 计数和组

    我有一个与此类似的 MySQL db 表 id date class more info one more info two etc 1 2017 05 03 1 2 2017 05 03 3 3 2017 05 11 1 4 2017 0
  • 在客户端验证行比使用整个主键的二级索引更好?

    在 cassandra 中 众所周知 应该非常谨慎地使用二级索引 例如 如果我有一张桌子 User username usertype email etc 这里的用户名是分区键 现在我想支持当且仅当 usertype 是特定值 X 时返回特
  • 接收方未注册异常错误?

    在我的开发者控制台中 人们不断报告一个错误 我无法在我拥有的任何手机上重现该错误 一个人留言说 当他们尝试打开我的电池服务的设置屏幕时 他收到了消息 正如您从错误中看到的 它表明接收器未注册 java lang RuntimeExcepti