我所做的就是创建一个新项目。 import android.app.Activity; import android.content.ContentResolver; import android.os.Bundle; 公共类WebApp4Act扩展Activity { /** 在第一次创建活动时调用。 * / public static final Uri BOOKMARKS_URI = Uri.parse( “内容://浏览器/书签”); Context context = getBaseContext(); ContentResolver cr = getContentResolver();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
当我运行该项目时,它说不幸的是webApp4c已停止
如果我注释掉这条线 ContentResolver cr = getContentResolver(); 那没有问题 我正试图在AVD上运行此版本以在版本14上运行
答案 0 :(得分:3)
Context context = getBaseContext();
ContentResolver cr = getContentResolver();
需要在onCreate
方法或onCreate
方法
答案 1 :(得分:1)
答案很简单。遗憾的是,getContentResolver()
以及需要Context
的任何其他方法在应用程序构建过程或初始化期间无法执行此操作。在某些版本的AVD上,这没有被正确复制,所以这就是为什么它适用于某些版本的AVD。您所要做的就是将代码移到onCreate()
内(或者在构造之后运行的任何其他函数),你会没事的。
注意:有很多方法可以在构建过程中传递自定义视图或活动信息,但有两点需要注意:
在大多数情况下,最好在Android生命周期内工作。如果您需要有关Android生命周期的一些信息,可以从Android文档或Javadoc获取。
附加说明(编辑):您实际上并不需要getBaseContext()
。有几种Context
和Activity
计为一种。 getBaseContext()
最适合用于需要在Android生命周期之外传递或保留Context
的内容。
希望这有帮助, FuzzicalLogic