从Android中的非活动类中的资源中读取文本

时间:2013-04-25 05:12:37

标签: java android

我想从Android应用程序中的一个原始文本文件中读取一些文本,并在应用程序中显示该文本文件中的一行。窗口小部件。

对于MainActivity,我编写了一个使用以下代码获取InputStream的方法:

getBaseContext().getResources().openRawResource(R.raw.tips);

我的问题是如何在AppwidgetProvider中引用Context,因为当用户使用窗口小部件而不是应用程序时,不会调用MainActivity的onCreate方法。本身。上面的代码导致widgetprovider类中的编译器错误。

3 个答案:

答案 0 :(得分:2)

您可以从更新中获取它。请检查代码

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
    // TODO Auto-generated method stub
    super.onUpdate(context, appWidgetManager, appWidgetIds);
    context.getResources().openRawResource(id);
}

答案 1 :(得分:1)

如果您只有上下文有问题

public void onUpdate(Context context, AppWidgetManager appWidgetManager,
      int[] appWidgetIds) {..}
AppWidgetProvider

将上下文对象变为params ..

您可以分享您的实施吗?

答案 2 :(得分:1)

执行此操作的最佳方法是将Context传递到需要访问应用程序资源的所有类和函数中。

执行此操作的第二种最佳方法是在static Context课程中存储Application。以下示例说明了如何执行此操作:Static way to get 'Context' on Android?