2

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

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

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

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

4

3 回答 3

2

您可以从 onUpdate 获取它。请检查代码

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
    // TODO Auto-generated method stub
    super.onUpdate(context, appWidgetManager, appWidgetIds);
    context.getResources().openRawResource(id);
}
于 2013-04-25T05:21:41.697 回答
1

如果您仅对 Context 有疑问

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

ofAppWidgetProvider将上下文对象放入 params..

你能分享你的实现吗?

于 2013-04-25T05:16:18.360 回答
1

最好的方法是将 a 传递给Context需要访问应用程序资源的所有类和函数。

做到这一点的第二个最佳方法是将 a 存储static Context在您的Application类中。这是一个准确描述如何执行此操作的示例:Static way to get 'Context' on Android?

于 2013-04-25T05:18:06.993 回答