簡體   English   中英

在Android Java類中調用“ getContentResolver”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM