首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android6.0: UsageEvents方法'usageStatsManger.queryEvents()‘表示计数为0(0)

Android6.0: UsageEvents方法'usageStatsManger.queryEvents()‘表示计数为0(0)
EN

Stack Overflow用户
提问于 2017-03-22 04:50:20
回答 1查看 1.2K关注 0票数 2

我已经创建了一个使用'UsageEvents'.检查前台活动的服务

代码语言:javascript
复制
private void getForegroundActivity() {
        String packageName = "";
        String className = "";
        Calendar cal_begin = Calendar.getInstance();
        cal_begin.set(Calendar.YEAR, -1);
        long _begTime = cal_begin.getTimeInMillis(); 
        long _endTime = System.currentTimeMillis();
        UsageStatsManager usageStatsManager = (UsageStatsManager)  this.getSystemService(Context.USAGE_STATS_SERVICE);

        if (usageStatsManager != null) {
            UsageEvents queryEvents = usageStatsManager.queryEvents(_begTime, _endTime);

            if (queryEvents != null) {
                UsageEvents.Event event = new UsageEvents.Event();

                while (queryEvents.hasNextEvent()) {
                    UsageEvents.Event eventAux = new UsageEvents.Event();
                    queryEvents.getNextEvent(eventAux);

                    if (eventAux.getEventType() == UsageEvents.Event.MOVE_TO_FOREGROUND) {
                        event = eventAux;
                    }
                }

                packageName = event.getPackageName();
                className = event.getClassName();
   }

上面的代码工作良好,并给出了适当的前台活动,但经过一段时间(假设2-3个小时后),‘queryEvents(_begTime, _endTime)’返回‘0’(零)计数!!

服务中是否有使用服务的其他方式?

任何其他的建议,想法都是值得赞赏的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 05:05:34

queryEvents()返回的事件由系统只保存几天。因此,您可能必须维护一个本地数据库来在本地维护这些状态。代码中没有问题。

有关queryEvents()方法和UsageStatsManager的更多信息,请查看以下链接:

UsageStatsManager queryEvents

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

https://stackoverflow.com/questions/42942986

复制
相关文章

相似问题

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