Android: IntentService используется в onDestroy ()

1

Я пытаюсь удалить специальный реестр в базе данных после выхода из приложения. Для этой проблемы я вызываю 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) синтаксис выполнял свою задачу.

  • 1
    Просто угадай .. может быть, приложение будет уничтожено до того, как намерение может быть подано?
  • 0
    Да, я так думаю, но есть ли решение?
Показать ещё 2 комментария
Теги:
intentservice

1 ответ

0

На самом деле метод onDestroy не может быть вызван.

onDestroy вызывается только в том случае, когда система имеет мало ресурсов (память, время процессора и т.д.) и принимает решение убить ваши активности/приложения или когда кто-то называет finish() для вашей активности.

Если вы хотите освободить некоторые ресурсы, вы должны сделать это в onPause() .

  • 0
    При нажатии кнопки «Назад» onDestroy () вызывается на лету.
  • 0
    @VittorioJimmyCozzolino, поэтому я говорю: «На самом деле метод onDestroy не может быть вызван». :)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню