小白求助!!!请问Android 使用BroadCast实现强制下线功能,点击强制下线按钮,程序直接奔溃是为什么啊??

tears2014 2016-03-29 05:00:45
MainActivity中强制下线按钮:

ForceOfflineReceiver:

AndroidManifest中的相关注册:
权限:

其它:

...全文
227 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34768670 2016-05-25
  • 打赏
  • 举报
回复
我也遇到这问题,一点击mainActivity里的按钮就崩溃了,怎么解决的啊
节操在此 2016-03-30
  • 打赏
  • 举报
回复
看你的代码就是context的问题,解决方法的话,你可以在application里定义一个activity引用指向当前栈顶的activity,然后在广播接收器里创建dialog不要用回调里的text,直接传application里的activity引用
节操在此 2016-03-30
  • 打赏
  • 举报
回复
引用 5 楼 u014027694 的回复:
看你的代码就是context的问题,解决方法的话,你可以在application里定义一个activity引用指向当前栈顶的activity,然后在广播接收器里创建dialog不要用回调里的text,直接传application里的activity引用
打错字了是context,不是text
tears2014 2016-03-30
  • 打赏
  • 举报
回复
引用 4 楼 u014027694 的回复:
dialog创建需要的context必须是窗体,你自己看看receive里的context是不是activity之类的引用
问题找到了,还是权限问题,版本6.0是动态权限授权,SYSTEM_ALERT_WINDOW权限必须申明后,发送Intent请求用户授权(用6.0之前的版本程序都可以正常运行,( ╯□╰ )),还是谢谢了
节操在此 2016-03-30
  • 打赏
  • 举报
回复
dialog创建需要的context必须是窗体,你自己看看receive里的context是不是activity之类的引用
tears2014 2016-03-29
  • 打赏
  • 举报
回复
03-29 19:14:21.380 993-993/? E/kickstart: ERROR: function: open_file:195 filename = /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs1 03-29 19:16:16.569 993-993/? E/kickstart: ERROR: function: open_file:195 filename = /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs2 还有一直出现这样的错误,求教
tears2014 2016-03-29
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
看logcat日志,里面写着crash的信息呢,哪个单元,第几行都有
日志看了,发现错误是 java.lang.RuntimeException: Unable to start receiver test.zyf.com.broadcasttest.ForceOfflineReceiver: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@7d4996d -- permission denied for this window type 广播接收器启动失败,弹出系统级别的对话框失败 可是已经设置过android.permission.SYSTEM_ALERT_WINDOW权限,对ForceOffineReceiver进行注册并指定了要接收的广播,为什么还会出现这样的错误呢?
bdmh 2016-03-29
  • 打赏
  • 举报
回复
看logcat日志,里面写着crash的信息呢,哪个单元,第几行都有

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧