這就是我如何停止並啓動服務
檢查此link瞭解更多詳情。
public void onClick(View src) {
switch (src.getId()) {
case R.id.buttonStart:
Log.d(TAG, "onClick: starting srvice");
startService(new Intent(this, MyService.class));
break;
case R.id.buttonStop:
Log.d(TAG, "onClick: stopping srvice");
stopService(new Intent(this, MyService.class));
break;
}
}
和服務類:
public class MyService extends Service {
private static final String TAG = "MyService";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
}
@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
Log.d(TAG, "onDestroy");
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
Log.d(TAG, "onStart");
}
}
編碼快樂!
感謝您的快速響應。我知道我需要在某個時候調用stopService()。我的問題是我不知道該把它放在哪裏。我想確保服務在用戶退出應用程序之前保持運行(即所有活動都已暫停或銷燬)。 onDestroy()似乎不是正確的地方,因爲我們不能依靠它被調用。 – summon 2011-04-28 10:03:41
我能想到的一種方法是在您的服務中有一個後臺線程,用於檢查是否存在任何綁定的活動,如果不存在,則調用stopSelf()。 – rajath 2011-04-28 10:10:25
再次感謝您!使用後臺線程解決了我的問題。 – summon 2011-04-28 12:17:36