【问题标题】:JobService not running on Android ThingsJobService 未在 Android Things 上运行
【发布时间】:2018-08-14 13:48:34
【问题描述】:

我尝试在 Android Things 上使用 JobScheduler 和 JobService 我的安装是运行 IoT RPI3 1.0.2 的 RPI (Raspberry Pi)

这是我的简单代码:

    package com.mystuff.jobservicetest;

    import android.app.Activity;
    import android.app.job.JobInfo;
    import android.app.job.JobParameters;
    import android.app.job.JobScheduler;
    import android.app.job.JobService;
    import android.content.ComponentName;
    import android.content.Context;
    import android.os.Bundle;
    import android.util.Log;


    public class MainActivity extends Activity {

    private static final String TAG = MainActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        JobScheduler jobScheduler = (JobScheduler) getSystemService(
                Context.JOB_SCHEDULER_SERVICE);
        ComponentName name = new ComponentName(this, JobServiceTest.class);
        JobInfo jobInfo = new JobInfo.Builder(1,name).setPeriodic(1000).build();
        int result = jobScheduler.schedule(jobInfo);
        Log.d(TAG, "result = "+result);
    }

    public class JobServiceTest extends JobService {

        @Override
        public boolean onStartJob(JobParameters jobParameters) {
            Log.d(TAG, "Service job started");
            return false;
        }

        @Override
        public boolean onStopJob(JobParameters jobParameters) {
            return false;
        }
    }
 }

AndroidManifest.xml 看起来很简单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mystuff.jobservicetest">

    <application>
        <uses-library android:name="com.google.android.things" />

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.IOT_LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <service android:name=".MainActivity$JobServiceTest"
            android:permission="android.permission.BIND_JOB_SERVICE"/>
    </application>

</manifest>

logcat的结果就是:

W/JobInfo:1 的指定间隔为 +1s0ms。钳制到 +15m0s0ms 为 1 指定的 flex 为 +1s0ms。钳制到 +5m0s0ms

D/MainActivity:结果 = 1

我缺少“服务作业已启动”日志。似乎永远不会调用 onStartJob。

有什么提示吗?

谢谢

【问题讨论】:

    标签: android-things android-jobscheduler jobservice


    【解决方案1】:

    JobService 只能以 15 分钟或更长的时间间隔进行安排。如果您想要更短的任务,您可能需要查看其他方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多