android – 每天应用程序未打开时运行代码

前端之家收集整理的这篇文章主要介绍了android – 每天应用程序未打开时运行代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想每天(每24小时)运行一些代码.问题是如果用户没有打开应用程序.如何在应用程序未打开时运行代码

解决方法

android中运行后台定期任务你可以使用各种方式,其中一些是:

> JobScheduler(仅限API 21或以上)

Android在API 21上添加了这个类,这里​​的文档是link.

> JobSchedulerCompat – 用于API 11或更高版本的JobScheduler库的Backport

您可以找到有关库here的所有信息.

>使用警报管理器处理定期任务

您还可以使用AlarmManager来安排定期任务.实施它的完整文章发布于here.

>使用GCM(Google Cloud Messaging)网络管理器安排定期任务.

您可以查看此文档link来实现它.

使用GCM网络管理器定期执行任务的示例

在项目级build.gradle中添加依赖项.

compile 'com.google.android.gms:play-services-gcm:7.5.0'

创建一个扩展到GcmTaskService的java类

public class BackgroundTaskHandler extends GcmTaskService {

    public BackgroundTaskHandler() {
    }

    @Override
    public int onRunTask(TaskParams taskParams) {
         //Your periodic code here
    }
}

在manifest.xml中声明服务

<service
        android:name=".BackgroundTaskHandler"
        android:exported="true"
        android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE">
        <intent-filter>
            <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
        </intent-filter>
    </service>

现在安排任何类的周期性任务: –

String tag = "periodic";

    GcmNetworkManager mScheduler = GcmNetworkManager.getInstance(getApplicationContext());

    long periodSecs = 60L;// 1 minute

    PeriodicTask periodic = new PeriodicTask.Builder()
            .setService(BackgroundTaskHandler.class)
            .setPeriod(periodSecs)
            .setTag(tag)
            .setPersisted(true)
            .setUpdateCurrent(true).setrequiredNetwork(com.google.android.gms.gcm.Task.NETWORK_STATE_CONNECTED)
            .build();
    mScheduler.schedule(periodic);
原文链接:https://www.f2er.com/android/317295.html

猜你在找的Android相关文章