

以前開発した歩数計アプリを改修することになり、今年11月からのターゲットSDKがAndroid8以上必須の影響度を調査しています。

現状は歩数のカウントをサービスで行っています。アプリが起動していなくても歩数をカウントしています。  
サービスは下記のタイミングで startService() で起動しています。  
・アプリ起動時  
・端末起動時（RECEIVE_BOOT_COMPLETED）  
・アプリ更新時（PACKAGE_REPLACED）

これをAndroid8に対応したいのですが、Android8の実機が無いので試せません。  
どのような対応をすれば、Android8でも問題なく動作するようになりますか？  
アドバイスをよろしくお願いいたします。


CC BY-SA 4.0
2018-09-25T05:02:10.303
48692
2018-09-28T06:09:48.437
7212
question
android
Android8のサービス実装方法について教えてください。


自己レスです。

android8端末を入手できて、下記の変更で動作することを確認できました。思っていたより単純でした。

[code]

    サービス起動を下記に変更。
    ContextCompat.startForegroundService(this, new Intent(this, PedometerService.class));
    
    サービスのonCreateで下記を実行。
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
      startForeground(1, new NotificationCompat.Builder(this).build());
    
[/code]


CC BY-SA 4.0
2018-09-28T06:09:48.437
48783
2018-09-28T06:09:48.437
7212
48692
answer