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

Я пытаюсь запустить службу в фоновом режиме. Что делает мое приложение, так это когда пользователь устанавливает флажок, затем запускается служба, а когда она не отмечена, служба останавливается. Который отлично работает. Но проблема в том, что когда я закрывал приложение из диспетчера задач, оно также останавливало службу. Я хочу, чтобы служба работала даже после того, как она была закрыта из диспетчера задач. Тогда единственный способ остановить эту службу — это сам пользователь, сняв флажок.

Как этого добиться?

Вот мой код

Моя основная деятельность

public class SampleServiceActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final CheckBox cb = (CheckBox) findViewById(R.id.checkBox1);

    cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            if(isChecked) {
                Toast.makeText(getBaseContext(), "Checked", Toast.LENGTH_LONG).show();
                startService(new Intent(getBaseContext(), MyService.class));
            } else {
                Toast.makeText(getBaseContext(), "Unchecked", Toast.LENGTH_LONG).show();
                stopService(new Intent(getBaseContext(), MyService.class));
            }
        }

    });
}
}

Мой класс обслуживания

public class MyService extends Service {
Notify n = new Notify();
@Override
public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
}

public int onStartCommand(Intent intent, int flags, int startId) {
    Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
    n.initNotification(getBaseContext(), true);
    return START_STICKY;
}

//method to stop service
public void onDestroy() {
    super.onDestroy();
    n.cancelNotification(getBaseContext());
    Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();
}
}

Обновление

Как мы можем сделать этот сервис, чтобы он работал как сервис gtalk?

17
задан Akhil 1 June 2012 в 09:40
поделиться