Я пытаюсь удалить специальный реестр в базе данных после выхода из приложения. Для этой проблемы я вызываю IntentService, который работает теоретически при уничтожении идентификатора приложения. Проблема в том, что, хотя это намерение не работает должным образом, и реестр не удаляется. Вот код, если вы можете помочь. IntentService:
public class FinIntentService extends IntentService{
String levelstring = "22";
int pid;
static String pids;
BroadcastReceiver batteryReceiver = null;
String url = "10.0.0.13";
private static String url_crear = "http://10.0.0.13/subida/create_candidato.php";
private static final String url_delete = "http://10.0.0.13/subida/delete_candidato.php";
JSONParser jsonParser = new JSONParser();
@SuppressLint("NewApi")
static String device_id = Build.SERIAL;
static String PDA = device_id.substring(device_id.length() - 6);
public FinIntentService() {
super("FinIntentService");
}
@Override
protected void onHandleIntent(Intent intent)
{
int success;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("id", Titulacion.getPID()));
JSONObject json = jsonParser.makeHttpRequest(
url_delete, "POST", params);
Log.d("Delete Product", json.toString());
success = json.getInt("success");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Например, журнал недоступен
Основная деятельность:
public void onDestroy(){
super.onDestroy();
Intent msgIntent = new Intent(Titulacion.this, FinIntentService.class);
startService(msgIntent);
}
Я пытался использовать Asynctask раньше, но я не мог получить желаемый эффект при onDestroy. однако в некоторых случаях (1 из 30) синтаксис выполнял свою задачу.
На самом деле метод onDestroy
не может быть вызван.
onDestroy
вызывается только в том случае, когда система имеет мало ресурсов (память, время процессора и т.д.) и принимает решение убить ваши активности/приложения или когда кто-то называет finish() для вашей активности.
Если вы хотите освободить некоторые ресурсы, вы должны сделать это в onPause()
.