[英]NPE when calling a method which is having getContentResolver().query in Android
[英]Calling “ getContentResolver ” in an Android Java class
我有一個包含線程T的ServiceS。我也有一個Java類C。我想從線程T調用類C的方法。該方法應該包含以下幾行:
Uri uri = Uri.parse("content://sms");
Cursor cursor1 = getContentResolver().query(uri, null, null ,null, null);
問題是我收到錯誤“無法解析方法'getContentResolver()'”。 我知道這是上下文問題,但我不知道如何解決。
編輯
不考慮線程T,嘗試這樣做:
C類:
public class SMS {
private ArrayList<String> smsList = new ArrayList<>();
public SMS(Context context){
Uri uri = Uri.parse("content://sms");
Cursor cursor1 = context.getContentResolver().query(uri, null, null ,null, null);
}
}
服務S:
public class MyService extends Service{
SMS sms = new SMS(this);
}
但是我得到了錯誤:
java.lang.NullPointerException
at com.example.maxime.servicesms2.SMS.<init>(SMS.java:18)
第18行是:
Cursor cursor1 = context.getContentResolver().query(uri, null, null ,null, null);
謝謝您的幫助 !
您可以將服務作為android.app.Service的子項
public class ServiceS extends Service {...}
那么它將具有getContentResolver()方法
您應該將Context傳遞給類C中的方法
就像是:
public void doSomething(Context context) {
Uri uri = Uri.parse("content://sms");
Cursor cursor = context.getContentResolver().query(uri, null, null ,null, null);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.