###前提・実現したいこと
バックグラウンドで定期的な処理をしたいです。
色々試しましたが結局スリープ時に止まってしまうので、
JobSchedulerが必要ということがわかりました。
それで実装してみたのですが、schedule後にonStartJobが実行されず、
処理を実行することができていない状況です。
エラーメッセージなどは出ていません。
よろしくお願いします。
###該当のソースコード
Java
1public class JobTestService extends JobService { 2 // 省略 3 4 // ActivityのStartボタン押下時に呼ばれる 5 public static void startJob(Context context) { 6 JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName("パッケージ名", "パッケージ名.JobTestService")); 7 builder.setPeriodic(5000); 8 builder.setRequiresDeviceIdle(false); 9 builder.setRequiresCharging(false); 10 11 JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); 12 int ret = scheduler.schedule(builder.build()); 13 if (ret != RESULT_SUCCESS) { 14 Log.v("scheduler ret:", String.valueOf(ret)); 15 } 16 } 17 18 @Override 19 public boolean onStartJob(JobParameters jobParameters) { 20 Log.v("service", "onStartJob"); // ここに来ない・・・ 21 22 return true; 23 }
以下はマニフェスト抜粋です。
xml
1 <uses-permission android:name="android.permission.INTERNET" /> 2 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 3 4 <application 5 android:allowBackup="true" 6 android:icon="@mipmap/ic_launcher" 7 android:label="@string/app_name" 8 android:roundIcon="@mipmap/ic_launcher_round" 9 android:supportsRtl="true" 10 android:theme="@style/AppTheme"> 11 12 <service 13 android:name=".JobTestService" 14 android:permission="android.permission.BIND_JOB_SERVICE" 15 android:enabled="true" 16 android:exported="true"></service> 17 </application> 18 19</manifest>
###試したこと
JobInfoの設定値を色々試してみましたが、どれもダメでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Android Studio 3.0.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。