僅此標誌不會停止服務。我建議你制定停止行動,而不是發射一個自定義BroadcastReceiver
類,該類在其onReceive()
內運行stopService()
方法。讓我知道你是否需要幫助設置更詳細的內容。
編輯答案:
更改Intent
和PendingIntent
的隱藏行動,這一點:
Intent intentHide = new Intent(this, StopServiceReceiver.class);
PendingIntent hide = PendingIntent.getBroadcast(this, (int) System.currentTimeMillis(), intentHide, PendingIntent.FLAG_CANCEL_CURRENT);
然後使StopServiceReceiver
這個樣子,哪裏ServiceYouWantStopped.class
是要停止的服務:
public class StopServiceReceiver extends BroadcastReceiver {
public static final int REQUEST_CODE = 333;
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, ServiceYouWantStopped.class);
context.stopService(service);
}
}
確保您剛剛製作的BroadcastReceiver
已在您的清單文件中聲明e:
<receiver
android:name=".StopServiceReceiver"
android:enabled="true"
android:process=":remote" />
希望這有助於!
可能重複的[PendingIntent啓動和停止服務](http://stackoverflow.com/questions/20572216/pendingintent-to-launch-and-stop-a-service) –
爲什麼你使用相同的請求兩種不同行爲的代碼?我認爲你與PendingIntent標誌混淆。這些標誌用於控制通知。 – Ayaanp