android - 在固定间隔后在 android 中从后台执行 REST 调用

标签 android android-intent

我是 Android 的新手,我想知道执行后台操作的最有效方法,这是一个简单的 POST 请求,带有 JSON Body,它将在固定间隔后被命中。最好的方法是 Intent Service 或 Async Task。

最佳答案

如下创建一个JobScheduler

 public static void scheduleJob(Context context) {
        ComponentName serviceComponent = new ComponentName(context, TestJobService.class);
        JobInfo.Builder builder = new JobInfo.Builder(0, serviceComponent);
        builder.setMinimumLatency(1 * 1000); // wait at least
        builder.setOverrideDeadline(3 * 1000); // maximum delay
        charging or not
        JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
        jobScheduler.schedule(builder.build());
    }

创建以下接收器

public class MyStartServiceReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Util.scheduleJob(context);
    }
}

在 Android list 中为 BOOT_COMPLETED 事件注册接收器。

<receiver android:name="MyStartServiceReceiver" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

创建一个 JobService 并将您的代码添加到 onStartJob

public class TestJobService extends JobService {
    private static final String TAG = "SyncService";

    @Override
    public boolean onStartJob(JobParameters params) {
        Intent service = new Intent(getApplicationContext(), LocalWordService.class);
        getApplicationContext().startService(service);
        Util.scheduleJob(getApplicationContext()); // reschedule the job
        return true;
    }

    @Override
    public boolean onStopJob(JobParameters params) {
        return true;
    }

}

有关详细信息,请参阅:linkhere

关于android - 在固定间隔后在 android 中从后台执行 REST 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52287302/

相关文章:

android - mp.pause();使应用程序崩溃

java - com.google.firebase.database.DatabaseException : Can't convert object of type java. lang.String 键入 com.softworld.crib.models.User

java - 在 Android 应用程序中命名包的正确技术是什么?

android - java.lang.RuntimeException : Error receiving broadcast Intent On install Apk 错误

android - Intent.ACTION_GET_CONTENT 打开最近的文件,这给出了错误的 URI

android - 将 LinearLayout 中的 View 内容居中

java - 如何创建(然后获取元素)列表的数组/列表?

android - 如何在运行时处理 android Intent ?

java - MediaStore.Images.Media.getBitmap 意外失败

android - 启用 GPS 的相机 Intent