我想从Android应用程序中的一个原始文本文件中读取一些文本,并在应用程序中显示该文本文件中的一行。窗口小部件。
对于MainActivity,我编写了一个使用以下代码获取InputStream的方法:
getBaseContext().getResources().openRawResource(R.raw.tips);
我的问题是如何在AppwidgetProvider中引用Context,因为当用户使用窗口小部件而不是应用程序时,不会调用MainActivity的onCreate方法。本身。上面的代码导致widgetprovider类中的编译器错误。
答案 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?