首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用wakelock Android

使用wakelock Android
EN

Stack Overflow用户
提问于 2012-08-19 11:40:16
回答 1查看 578关注 0票数 0

我每5分钟检查一次位置数据。我在一个每五分钟调用一次的服务中实现了这一点。在主活动中,我有两个按钮来启动/停止警报。这是实现锁的最佳位置吗..

代码语言:javascript
复制
 startService.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            // add a notification when the BG service is started..

            Intent myIntent = new Intent(ContextActivity.this, MyAlarmService.class);
            pendingIntent = PendingIntent.getService(ContextActivity.this, 0, myIntent, 0);

                        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

                        Calendar calendar = Calendar.getInstance();
                        calendar.setTimeInMillis(System.currentTimeMillis());
                        calendar.add(Calendar.SECOND, 10);
                       // alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
                        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000 * 60 * 5, pendingIntent);

               Toast.makeText(ContextActivity.this, "Start Alarm", Toast.LENGTH_LONG).show();
               System.out.println("Alarm started");
        }

    });

    stopService.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
               alarmManager.cancel(pendingIntent);

                        // Tell the user about what we did.
                        Toast.makeText(ContextActivity.this, "Cancel!", Toast.LENGTH_LONG).show();
                        System.out.println("Stop alarm");
        }
    });

在启动时获取锁,在停止时释放锁可以吗?

EN

回答 1

Stack Overflow用户

发布于 2012-08-19 12:34:20

你不应该需要一个wakelock来做这个。

您已经使用了alarmManager.setRepeating(AlarmManager.RTC_WAKEUP...作为文档状态:

Alarm time in System.currentTimeMillis() (挂钟时间,单位为协调世界时),它将在设备关闭时唤醒设备。

因此,当闹钟发出时,它已经为您唤醒了设备。如果您觉得您的服务在设备重新进入睡眠之前无法完成其工作,那么您应该获取服务内部的唤醒锁,并在完成工作后释放它。

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

https://stackoverflow.com/questions/12024042

复制
相关文章

相似问题

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