在Android Alarmmanager中从缓存中读取文件

时间:2014-05-27 21:06:17

标签: android alarmmanager bufferedreader android-context

我想将文件保存到我的缓存中。我为此使用了BufferedWriter。 我通过使用:

获得了我的道路

CacheDir.getPath() + "/" + "Example.txt"

其中CacheDir为CacheDir = getCacheDir();

现在我想使用Alarmmanager / Broadcastreceiver中的Reader方法从这个文件中读取。

我使用:localLoadUpString = readTextFile(CacheDir.getPath()+"/"+"Example.txt"); 在我的AlarmReceiver中,我得到了文件CacheDir:CacheDir = context.getCacheDir();

当我使用Log来查看我的路径是否正确时,一切看起来都很不错,但我的localLoadUpString永远不会从我的阅读器中获取String方法(阅读器方法在其他(正常)活动中正常工作)

我是否因使用错误的上下文而犯了错误?

1 个答案:

答案 0 :(得分:0)

"正确"上下文可能取决于您注册BroadcastReceiver的方式。

  1. 如果您在AndroidManifest.xml中声明了它,则传递给onReceive()的上下文是ApplicationContext。
  2. 如果您在运行时通过context.registerReceiver()动态注册BroadcastReceiver,则传递给onReceive()的上下文与用于调用registerReceiver()的上下文相同。
  3. 在第2种情况下,您始终可以调用context.getApplicationContext()来检索应用程序上下文。

    由于我无法理解你在哪里尝试做什么,我最初的建议是在你的onReceive()调用中尝试context.getApplicationContext()。getCacheDir()。 / p>