タグ付けされた質問 「foreground」


26
その後、Context.startForegroundService()はService.startForeground()を呼び出しませんでした
使ってます ServiceAndroid O OSでClassをしています。 Serviceバックグラウンドで使用する予定です。 Androidのドキュメントと述べています アプリがAPIレベル26以上をターゲットにしている場合、アプリ自体がフォアグラウンドにない限り、システムはバックグラウンドサービスの使用または作成に制限を課します。アプリがフォアグラウンドサービスを作成する必要がある場合、アプリはを呼び出す必要がありますstartForegroundService()。 を使用するstartForegroundService()と、Serviceは次のエラーをスローします。 Context.startForegroundService() did not then call Service.startForeground() これの何が問題になっていますか?

5
Androidのフォアグラウンドサービスの通知テキストを更新するにはどうすればよいですか?
Androidでフォアグラウンドサービスを設定しています。通知テキストを更新したいのですが。以下のようにサービスを作成しています。 このフォアグラウンドサービス内に設定されている通知テキストを更新するにはどうすればよいですか?通知を更新するためのベストプラクティスは何ですか?任意のサンプルコードをいただければ幸いです。 public class NotificationService extends Service { private static final int ONGOING_NOTIFICATION = 1; private Notification notification; @Override public void onCreate() { super.onCreate(); this.notification = new Notification(R.drawable.statusbar, getText(R.string.app_name), System.currentTimeMillis()); Intent notificationIntent = new Intent(this, AbList.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); this.notification.setLatestEventInfo(this, getText(R.string.app_name), "Update This Text", pendingIntent); startForeground(ONGOING_NOTIFICATION, …

14
通知を表示せずにForeground()を開始するにはどうすればよいですか?
サービスを作成してフォアグラウンドで実行したいと思います。 ほとんどのサンプルコードには通知があります。しかし、私は通知を表示したくありません。それは可能ですか? いくつか例を挙げていただけますか?代替手段はありますか? 私のアプリサービスはメディアプレーヤーをやっています。アプリがサービス自体を強制終了する以外に、システムがサービスを強制終了しないようにする方法(ボタンで音楽を一時停止または停止するなど)。

2
フォアグラウンドサービスがAndroidによって殺されている
更新:問題の真の解決策が見つかりませんでした。私が思いついたのは、接続が失われたときに以前のBluetoothデバイスに自動的に再接続する方法でした。理想的ではありませんが、かなりうまく機能しているようです。しかし、これに関する提案をもっと聞きたいです。 私はこの質問とほとんど同じ問題を抱えています:ウェイクロックを保持している間、デバイス(Asus Transformer)を含むstartForegroundを呼び出した後、サービスが停止するまでの時間(30〜45分)、ウェイクロック、startForeground()の使用、および画面がオフになったときにアプリが開いている場合は問題が発生しないという事実。 私のアプリは別のデバイスへのBluetooth接続を維持し、2つのデバイス間でデータを送信するため、データをリッスンするには常にアクティブである必要があります。ユーザーはサービスを自由に開始および停止できます。実際、これがサービスを開始または停止するために実装した唯一の方法です。サービスが再起動すると、他のデバイスへのBluetooth接続が失われます。 リンクされた質問の回答によると、startForeground()は「サービスが強制終了される可能性を減らしますが、それを防ぐことはできません」。そうだとは思いますが、この問題がない他のアプリの例をたくさん見てきました(たとえば、タスカー)。 ユーザーが停止するまでサービスを実行できないと、アプリの有用性が大幅に低下します。これを回避する方法はありますか? サービスが停止するたびに、logcatにこれが表示されます。 ActivityManager: No longer want com.howettl.textab (pid 32321): hidden #16 WindowManager: WIN DEATH: Window{40e2d968 com.howettl.textab/com.howettl.textab.TexTab paused=false ActivityManager: Scheduling restart of crashed service com.howettl.textab/.TexTabService in 5000ms 編集:私はまた注意する必要があります、これは私が接続している他のデバイスでは発生しないようです:Cyanogenを実行しているHTCLegend 編集:これはの出力ですadb shell dumpsys activity services: * ServiceRecord{40f632e8 com.howettl.textab/.TexTabService} intent={cmp=com.howettl.textab/.TexTabService} packageName=com.howettl.textab processName=com.howettl.textab baseDir=/data/app/com.howettl.textab-1.apk resDir=/data/app/com.howettl.textab-1.apk dataDir=/data/data/com.howettl.textab app=ProcessRecord{40bb0098 2995:com.howettl.textab/10104} isForeground=true foregroundId=2 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.