Android - удаленное обслуживание прекращается, если приложение закрывается - PullRequest
1 голос
/ 12 февраля 2012

Android SDK сообщает, что удаленная служба работает с приложением в другом процессе.Я думал, что это означает, что если приложение останавливается / завершается ..., то удаленный сервис все еще остается запущенным.Но это не так.

Например, у меня есть этот удаленный сервис:

import java.util.Timer;
import java.util.TimerTask;

import android.app.Service;
import android.os.IBinder;
import android.util.Log;

public class WatchDogService extends Service {

  private Timer timer = new Timer();

  @Override
  public void onCreate() {
    Log.i(WatchDogService.class.getName(), "WatchDog start");

    timer.scheduleAtFixedRate(new TimerTask() {
      @Override
      public void run() {
        Log.i(WatchDogService.class.getName(), "WatchDog boo boo!!! ^^");
      }
    }, 0, 5000);
  }

  @Override
  public void onDestroy() {
    Log.i(WatchDogService.class.getName(), "WatchDog stop");
  }

  @Override
  public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
    Log.i(WatchDogService.class.getName(), "WatchDog has just been called...");
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
  }
}

AndroidManifest.xml:

<service
    android:name="WatchDogService"
    android:process=":remote" >
    <intent-filter>
        <action android:name="WatchDogService" />
    </intent-filter>
</service>

В другой деятельности я называю это как1011 *

startService(new Intent("WatchDogService"));

Служба запускается нормально.Но если я захожу в диспетчер системных приложений, а затем останавливаю приложение, служба также останавливается.

Я хочу, чтобы служба работала, даже если приложение было остановлено.Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 12 февраля 2012

Я хочу, чтобы служба работала, даже если приложение закрыто.Как я могу это сделать?

Вы не делаете.Если пользователь закрывает ваше приложение, ваше приложение закрывается, точка.Пользователь контролирует свое устройство Android, а не вас.

Пожалуйста, уважайте пожелания пользователя и старайтесь не создавать приложения, которые пользователь захочет принудительно остановить, убить задачу или иным образом избавиться.

0 голосов
/ 02 октября 2012

Вместо службы вы можете создать отдельное приложение и вызвать его или

Вместо службы вы можете создать отдельное фоновое приложение, используя AIDL, описанный по этой ссылке: http://developer.android.com/guide/components/aidl.html

Обратите внимание, что AIDL должен зарегистрировать уведомление с намерением запустить исходное приложение, когда оно будет готово, и спросить пользователя, желает ли он действовать с ним.

0 голосов
/ 12 февраля 2012

Я ожидал, что «сервис» означает сервис, а не «приложение». Я имею в виду, я хочу что-то вроде «Сервис-менеджер». Но я забыл, что настройки Приложения в Android предназначены для конечных пользователей, а не для программиста.

Пока я получил ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...