Я хочу добавить задачи к JobIntentService queue
, в настоящее время я создал JobIntentService
, который работает правильно для одной задачи, но когда я вызываю enqueueWork
до завершения existing service
, он не работает.
Ниже мой JobIntentService
public class SaveImageService extends JobIntentService {
private String TAG = "SaveImageService";
private int textureViewDefaultHeight =1100;
static final int JOB_ID = 1101;
private static Context mContext;
private ResultReceiver mResultReceiver;
public static final int SHOW_RESULT = 57;
public static final String RECEIVERstr = "receiver";
public static void enqueueWork(Context context, Intent work, SaveImageReceiver saveImageReceiver) {
mContext = context;
Intent intent = work;
intent.putExtra(RECEIVERstr, saveImageReceiver);
enqueueWork(context, SaveImageService.class, JOB_ID, intent);
}
@Override
protected void onHandleWork(@NonNull Intent intent) {
Log.e(TAG, "** onHandleWork");
if (intent.hasExtra("fileUri")) {
mResultReceiver = intent.getParcelableExtra(RECEIVERstr);
Log.e(TAG, "** onHandleWork if has extra");
Uri oldUri = intent.getParcelableExtra("fileUri");
int textureViewHeight = intent.getIntExtra("textureViewHeight",textureViewDefaultHeight);
Uri tempUri = getBitmapForBatch(oldUri,textureViewHeight);
if(tempUri!=null){
Log.e(TAG, "** if(tempUri!=null){");
Bundle bundle = new Bundle();
bundle.putParcelable("ResultUri", tempUri);
if (mResultReceiver != null) {
Log.e(TAG, "** onHandleWork mResultReceiver not null");
mResultReceiver.send(SHOW_RESULT, bundle);
} else
Log.e(TAG, "** onHandleWork mResultReceiver isss null");
}else
Log.e(TAG, "** else (tempUri!=null){");
}else{
Log.e(TAG, "** onHandleWork else uri not get");
}
}
}
, и я запускаю его каждый раз, когда пользователь нажимает на фотографию
Intent mIntent = new Intent(context, SaveImageService.class);
mIntent.putExtra("fileUri", fileUri);
mIntent.putExtra("textureViewHeight", textureView.getHeight());
SaveImageService.enqueueWork(context, mIntent, mSaveImageReceiver);
Заранее благодарен за помощь.