0
在Android中,我需要在數據庫查詢之後啓動一個服務,以便我可以從應用程序請求丟失的字節。我打電話這樣說:如何從SQLiteOpenHelper類中調用服務?
Intent service = new Intent("br.com.company.intent.DO_CHUNK_REQUEST");
service.putExtra("FIELD_NAME", fieldName);
service.putExtra("JOB_NAME", jobName);
service.putExtra("START_BYTE", 500);
service.putExtra("LENGTH", 100);
AWS myCall = new AWS();
myCall.chama_servico(service);
,我創建了另一個類爲「服務調用者」的工作,因爲我不能在同一時間我班擴大到SQLiteOpenHelper和服務。我的班級是這樣的:
package br.com.company.AWService;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class AWS extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void chama_servico (Intent service) {
startService(service);
}
}
但是當我運行這段代碼時,我在startService(service)處得到一個NullPointerException異常。我究竟做錯了什麼?在數據庫查詢之後是否有更好/正確的方式來調用服務?
謝謝!
「在數據庫查詢之後是否有更好/正確的方式來調用服務?」 - 讓查詢調用服務的任何人。 – CommonsWare
問題是查詢可能導致對服務的多個調用。我必須將所有丟失的字節存儲在列表或hashMap中。 –
這不是問題在服務中,有一個名爲onStartCommand()的方法,當您啓動服務時將始終調用此方法,並且如果您希望避免此問題,則可以通過使FLAG知道服務已在運行來控制該方法。 –