質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.49%

【Flutter】foreground serviceが維持できない

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 2,282

score 279

前提・実現したいこと

Androidのフォアグラウンドサービスを利用して、アプリがkillされた状態でも位置情報の検知を継続させたい。

発生している問題・エラーメッセージ

アプリをKillしたタイミングでforeground serviceも通知センターから削除されてしまいます。

該当のソースコード

foreground_service 2.0.1+1
上記のライブラリを使用して、foregroundサービスを作成しています。

  void _startAndroidForeground() async {
    await ForegroundService.setServiceIntervalSeconds(5);

    await ForegroundService.notification.startEditMode();

    await ForegroundService.notification
        .setTitle("TEST");
    await ForegroundService.notification
        .setText("automatically attendance");

    await ForegroundService.notification.finishEditMode();
    await ForegroundService.setContinueRunningAfterAppKilled(true);

    await ForegroundService.startForegroundService(foregroundServiceFunction(), true);
    await ForegroundService.getWakeLock();
  }

試したこと

github上にissueも追記しましたが、以前のバージョンですでに動作しているような記述も見られます。

補足情報(FW/ツールのバージョンなど)

[✓] Flutter (Channel unknown, v1.17.4, on Mac OS X 10.15.4 19E287, locale en-US)
    • Flutter version 1.17.4 at /Users/teppei.kikuchi/fvm/versions/1.17.4
    • Framework revision 1ad9baa8b9 (3 months ago), 2020-06-17 14:41:16 -0700
    • Engine revision ee76268252
    • Dart version 2.8.4

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/teppei.kikuchi/Library/Android/sdk
    • Platform android-30, build-tools 29.0.2ANDROID_HOME = /Users/teppei.kikuchi/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode_12gm.app/Contents/Developer
    • Xcode 12.0, Build version 12A7209
    • CocoaPods version 1.9.3

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 44.0.2
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[!] VS Code (version 1.49.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)
    • vivo 1820 • HUFIWC4TM7MF9LKN • android-arm64 Android 8.1.0 (API 27)
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

auto start っていう設定をONにしたら、Foreground serviceを維持できました!!
無事解決しました。
https://www.freecodecamp.org/news/why-your-push-notifications-never-see-the-light-of-day-3fa297520793/

https://stackoverflow.com/questions/55652443/foreground-service-killed-in-doze-mode-for-some-devices-like-oppo-vivo-mi-etc
vivo. oppo, xiomi端末は、アプリキル処理にアプリの強制終了機能が組み込まれているっていうようにGoogleから回答があったみたいですね、、

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/10/05 17:38

    回答頂きありがとうございます。

    別の方法で無事に解決いたしました。

    キャンセル

  • 2020/10/05 18:03

    なるほど、機種依存の事象なのですね。勉強になりました。

    キャンセル

0

Androidのフォアグラウンドサービスを利用して、アプリがkillされた状態でも位置情報の検知を継続させたい。

あまり詳しくはないので間違っていたら申し訳ないですが、
フォアグラウンドサービスは、アプリが終了したら終了するのではないでしょうか。
WorkManager や AlarmManager を利用する必要があるように思います。
https://developer.android.com/guide/background?hl=ja

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る