在广播里不识别getFilesDir()

在广播里不识别getFilesDir()

老师您好,我创建了一个广播监听短信,想把短信存到文件里,但是getFilesDir()不识别不知道为什么,劳您费心解答。

http://img1.sycdn.imooc.com//climg/5ece1d6b09bacc4f07230561.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你直接getFilesDir()的话,因为BroadcastReceiver没有此方法所以才报的错。而这个方法是谁的呢是Context,它是上下文对象。Activity就是一个context对象。Android程序员把“场景,或上下文”抽象为Context类,他们认为用户和操作系统的每一次交互都是一个场景,比如打电话、发短信,这些都是一个有界面的场景。弹出Toast、启动Activity、启动Service、发送广播、操作数据库等都需要用到Context。祝:学习愉快

  • 慕田峪2007516 提问者 #1
    明白了,老师谢谢您,还想再问您一下关于广播的问题,安卓8.0以上短信静态监听广播是不是不能用了?如果只能用动态,那意思是不是说app必须一直在后台运行着才可行?
    2020-05-27 16:57:41
  • 好帮手慕雪 回复 提问者 慕田峪2007516 #2
    8.0后取消了很多静态的监听广播,最好要用动态声明。另外有些权限属于危险权限,需要给客户确定后,再使用。这个短信广播应该也是收不到的
    2020-05-27 17:15:32
  • 慕田峪2007516 提问者 回复 好帮手慕雪 #3
    好的,老师我明白了谢谢您
    2020-05-27 17:19:25
提问者 慕田峪2007516 2020-05-27 16:05:57

老师我试了一下用context.getFilesDir()就可以了,但不太明白这广播里拿到的上下文指的是什么?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师