私は次のような動作を望みます: ユーザーが通知をクリックし、Androidがサービスを停止しました。ユーザーが通知をクリックしたときにサービスを停止する簡単な方法はありますか?
問題は、サービスを停止するにはstopServiceを呼び出す必要があり、それを行うPendingIntentを簡単に作成できないということです。
これを行うために私が見つけた唯一の方法は、サービスがstopSelfを呼び出して停止するように特別なIntentを余分に受け取ることです。
通知クリックからサービスを直接キャンセルする簡単な方法はありますか?
私は長い時間のためにこれを使用しましたが、これはもう動作しません。 Android L(5.0)以降、ユーザがrecentsリストのアプリをスワイプしてAndroidにメインタスクを終了させてサービスを再起動させると、DeadObjectExceptionが発生します(あるUIを持つローカルサービスがある場合スワイプアウト) – gnobal
@gnobal: 'DeadObjectException'は、AFAIKのバインディングを通じてのみ発生します。この解決法は結合を必要としない。 – CommonsWare
どちらも私のことをしません。私はstartServiceを使っています。しかし、私はこれを示すために小さな例を提供するのが面倒だから、うまく機能しないのは私のアプリだと信じています。いずれにせよ、私はあなたが提供した別のソリューションに切り替えました:http://stackoverflow.com/a/11145822/7748 :) – gnobal