首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onRunTask从未被调用过

onRunTask从未被调用过
EN

Stack Overflow用户
提问于 2017-12-17 07:48:36
回答 1查看 389关注 0票数 0

我使用GcmTaskService在后台发送数据,在大多数情况下,它工作得很好,最近我收到一个客户端的抱怨,说数据没有从设备中发送出去。我带来了这个设备,我注意到我的GcmTaskService的onRunTask从未在这个特定的设备上被调用。

我就是这样开始这项服务的:

代码语言:javascript
复制
GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(FarmWorkApplication.context);
        Class<FarmWorkSyncOutService> gcmTaskService = FarmWorkSyncOutService.class;
        String name = gcmTaskService.getName();
        gcmNetworkManager.cancelTask(name, gcmTaskService);
        OneoffTask task = new OneoffTask.Builder()
                .setService(gcmTaskService)
                .setTag(name)
                .setExecutionWindow(0L, maxDelay)
                .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
                .build();
        gcmNetworkManager.schedule(task);

这是清单中的服务定义:

代码语言:javascript
复制
<service android:name=".FarmWorkSyncOutService"
        android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
        android:exported="true">
        <intent-filter>
            <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
        </intent-filter>
    </service>

该设备通过WIFI连接到互联网上,并且很好地上网。

这一行:

代码语言:javascript
复制
gcmNetworkManager.cancelTask(name, gcmTaskService);

只是为了保证服务运行一次,我也试图删除它,但它没有帮助

我试着强制停止GooglePlayServices并删除它的数据,但它没有帮助我还能做什么来调试它?any1知道为什么会发生这种事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-17 08:51:18

这是节电模式的错。一旦我禁用它,设备就开始同步。想知道他们是否聪明到让服务永远不在后台运行.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47853159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档