Android jobFinisced的空对象引用
我正在用JobService构建一个应用程序。此JobService必须每1分钟启动一次服务 这是我的就业服务课:Android jobFinisced的空对象引用,android,jobservice,Android,Jobservice,我正在用JobService构建一个应用程序。此JobService必须每1分钟启动一次服务 这是我的就业服务课: public class BleJobService extends JobService { JobParameters params; DoItTask doIt; @Override public boolean onStartJob(JobParameters jobParameters) { this.params = pa
public class BleJobService extends JobService {
JobParameters params;
DoItTask doIt;
@Override
public boolean onStartJob(JobParameters jobParameters) {
this.params = params;
Log.d("TestService", "Work to be called from here");
startService(new Intent(this, BlePowerService_JobScheduler.class));
/*doIt = new DoItTask();
doIt.execute();*/
jobFinished(params, false);
return true;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
Log.d("TestService", "System calling to stop the job here");
if (doIt != null)
doIt.cancel(true);
return false;
}
private class DoItTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPostExecute(Void aVoid) {
Log.d("DoItTask", "Clean up the task here and call jobFinished...");
jobFinished(params, false);
super.onPostExecute(aVoid);
}
@Override
protected Void doInBackground(Void... params) {
Log.d("DoItTask", "Working here...");
return null;
}
}
}
问题出在这行代码上:
jobFinished(params, false);
params为空。params=params(除非
params
来自其他地方)是自赋值
考虑到它最初没有实例化,引用仍然是null
,因此NPE
你可能是说
this.params = jobParameters;
可能是?JobParameters params=新的JobParameters();和
this.params=params
?它不应该是this.params=jobParameters?
this.params = jobParameters;