принудительное закрытие приложения во время работы в фоновом режиме

В моем приложении для Android у меня есть одна служба, которая вызывает некоторые веб-службы после интервала исправления. Приложение отлично работает на переднем плане и обновляет данные, но когда пользователь выходит из приложения и использует другое приложение, мое приложение принудительно закрывается после много раз. Почему это приложение принудительно закрывается во время работы в фоновом режиме.

Код, который я использовал для запуска службы -

    msgIntent = new Intent(mContext, MyBackgroundService.class);
    startService(msgIntent);

и внутри onDestroy() моей основной деятельности у меня есть следующий код для остановки службы:

        if(msgIntent!=null){
            stopService(msgIntent);
        }

фоновая служба вызывает некоторую асинхронную задачу, и каждая задача aync onPostExecute() выполняет некоторый оператор вставки в базу данных.

я не понимаю, почему эта сила закрывается.

Пожалуйста, дайте свои комментарии.

Заранее спасибо.

Мой сервисный код

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    callAsynchronousTask();
    return Service.START_NOT_STICKY;
}

@Override
public void onCreate() {
    mContext = this;
    super.onCreate();
}

@Override
public IBinder onBind(Intent intent) {
    return null;
}


   public void callAsynchronousTask() {
     final Handler handler = new Handler();
     Timer timer = new Timer();
     TimerTask doAsynchronousTask = new TimerTask() {       
      @Override
     public void run() {
        handler.post(new Runnable() {
            public void run() {       
                try {
                    callWebservice();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
};
timer.schedule(doAsynchronousTask, START_DELAY, DELAY);
}

person Ravi Bhandari    schedule 13.08.2014    source источник
comment
трассировку стека пожалуйста!!   -  person Techfist    schedule 13.08.2014
comment
@rb16 опубликуйте журналы logcat   -  person Metalhead1247    schedule 13.08.2014
comment
Почтовый индекс службы и logcat, а также   -  person VVB    schedule 13.08.2014
comment
я не получаю никакого журнала, потому что он был принудительно закрыт, когда приложение не запущено и не подключено к USB.   -  person Ravi Bhandari    schedule 13.08.2014
comment
@RIT, пожалуйста, проверьте обновленный вопрос   -  person Ravi Bhandari    schedule 13.08.2014
comment
@RIT я не могу добавить logcat, потому что приложение принудительно закрывается, когда работает другое приложение.   -  person Ravi Bhandari    schedule 13.08.2014


Ответы (2)


Собственно проблема вот в чем

    if(msgIntent!=null){
        stopService(msgIntent);
    }

в вашем onDestroy(). Потому что, когда вы закрываете свое приложение, вызывается этот приведенный выше код, который закрывает вашу службу. И после закрытия службы вы снова пытаетесь вставить данные, вызывая службу + веб-службу. Следовательно, нет служебного объекта, поэтому он выходит из строя.

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

person VVB    schedule 13.08.2014
comment
уверен. Ваш ответ решит мою проблему. - person Ravi Bhandari; 19.08.2014

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

try
{
//stop service code
}
catch(Exception e)
{
}

попробуй это.

person Elango    schedule 13.08.2014
comment
так как я могу принудительно остановить службу, когда приложение не работает - person Ravi Bhandari; 13.08.2014
comment
служба, используемая для часто запускаемых программ, пример уведомления msg, проверьте онлайн (whatsapp). - person Elango; 14.08.2014
comment
я не хочу запускать службу, пока приложение не запущено - person Ravi Bhandari; 14.08.2014
comment
проверьте эти две ссылки для остановки самой службы. Link1, Link2 - person Elango; 14.08.2014