我正在使用Volley类向服务器发送图像,因为该过程和一些耗时的ressolvi在后台为服务执行,然后我通过意图发送一些参数来启动服务。
开始服务
$scope
服务
startService(new Intent(MainActivity.this, UploadImagesBackground.class).putExtra("bitmap", filePath.toString()));
对于调试:
@Override
public int onStartCommand(final Intent intent, int flags, final int startId) {
Log.v(TAG, "onStartCommand(); - iniciando o comando");
Log.v(TAG, "onStartCommand(); - generateID: " + startId);
// GET STRING IMAGE
if (intent != null){
extra = intent.getExtras();
image = getStringImage(extra.getString("bitmap"));
//Salvar no bundle
new SharedPreferencesUtil(UploadImagesBackground.this).saveImagesToUpload(image);
prepareUpload(startId,image);
}else{
Log.v(TAG, "A INTENT FOI NULA");
if (image != null){
Log.v(TAG, "IMAGE NAO FOI NULA");
prepareUpload(startId,image);
}else{
Log.v(TAG, "IMAGE FOI NULA");
displayNotification(startId, 3, "Por favor nao feche o aplicativo", 100);
}
}
//return START_FLAG_REDELIVERY;
return START_STICKY;
}
服务执行没有错误,我遇到的问题越多,用户关闭"应用程序抽屉的应用程序" (最近的应用程序)我的服务被取消并重新创建,这导致我的图像不完整提交
您认为用户仅使用后退退出应用程序,而不关闭抽屉,服务继续在和平计划中运行而不重新创建,您觉得奇怪。
在一些研究中,我发现了一些使用@Override
public void onCreate() {
super.onCreate();
Log.v(TAG, "//--------------------------");
Log.v(TAG, "onCreate(); - Serviço criado com sucesso");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.v(TAG, "onDestroy(); - Servico destruido com sucesso");
Log.v(TAG, "--------------------------//");
}
的建议然而却没有用
在一些研究中,我发现一些建议使用stop With Task = false但是没有用,我甚至试图使用android:stopWithTask= "false"
向系统提供我的可用服务,但是没有解决我的问题,我的服务声明android:exported="true"
:
AndroidManifest
拜托,帮助我!