草庐IT

Android:唤醒和解锁手机

我正在尝试了解如何使用服务唤醒和解锁手机。我一直指的是this发布但是,我无法弄清楚为什么它不起作用。这是我到目前为止的代码:publicclassWakephoneActivityextendsActivity{BroadcastReceivermReceiver;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mReceiver=newBroadcastReceiver(){@Overridep

android - 如何从 sleep 中唤醒安卓手机?

如何以编程方式将安卓手机从sleep中唤醒(挂起到内存)?我不想获得任何唤醒锁,这意味着手机在禁用cpu的情况下进入“真正的”sleep状态。我想我可以使用某种RTC(实时时钟)机制吗?谁有例子吗?谢谢。 最佳答案 为了让Activity唤醒设备不需要密码/刷卡,只需要添加几个flag即可。为此,请在您的代码中包含:this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN|WindowManager.LayoutParams.FLAG_DISMISS_K

android - 启动超时已过期,放弃唤醒锁! HistoryRecord 的 Activity 空闲超时。这有什么值得担心的吗?

在我的应用程序中,我在oncreate中使用了AsyncTask。有时我会在日志中收到“启动超时已过期,正在放弃唤醒锁!HistoryRecord的Activity空闲超时”。这会导致任何问题,还是我们可以忽略它? 最佳答案 终于找到答案了。这个可以忽略。这意味着您的主线程一直在运行,通过其消息队列泵送消息而不会空闲。如果那是你想要的,没有什么可以解决的。这就是日志消息是警告而非错误的原因。来源:GoogleGroups 关于android-启动超时已过期,放弃唤醒锁!HistoryRe

Android:前台服务与唤醒锁

我是Android的新手,所以我问的问题可能看起来很明显(尽管我已经阅读了所有类似标题的问题,并且进行了广泛的搜索)。我需要长时间连续监控加速度计。建议采用两种方法:1)获取部分唤醒锁,该锁在加速度计被监控的整个过程中保持;和2)在前台服务中监控加速度计。第一种方法似乎会消耗大量电池电量。第二种方法应该导致服务很少被杀死,但我不确定“很少”是什么意思。应该使用哪种方法,是否有我应该考虑的替代方法? 最佳答案 持有WakeLock和前台Service并没有真正的关系,不应该比较哪个方向最好。Android操作系统旨在根据多种因素交换进

android - GCM-App 真的需要唤醒锁吗?

我不太确定如何解释GCMClientdocumentation中的这句话:Theandroid.permission.WAKE_LOCKpermissionsotheapplicationcankeeptheprocessorfromsleepingwhenamessageisreceived.Optional—useonlyiftheappwantstokeepthedevicefromsleeping..Ifyoudon'tholdawakelockwhiletransitioningtheworktoaservice,youareeffectivelyallowingthedev

android - 如何让 Android 设备在没有唤醒锁的情况下保持与互联网的 TCP 连接?

我希望我的应用程序通过移动连接连接到服务器,同时允许设备进入休眠模式。我希望它在IP数据包到达时醒来。如何做到这一点?如何在不耗尽电池的情况下接收来自Internet的“中断”? 最佳答案 当你从一个tcp流中读取被阻塞时,设备可以进入深度sleep,当tcp流量进来时,它会短暂地唤醒设备,一旦读入一个位,你就会启动一个唤醒锁,直到你有接收到整个传输然后释放它。这是一个使用网络套接字的示例,我已经在后台运行这个应用程序超过12个小时,没有电池影响。https://github.com/schwiz/android-websocket

c++ - 不使用条件变量唤醒线程的最快方法

我正在尝试通过已经设置后台线程来解决一个特定任务来加速一段代码。当需要解决我的任务时,我想唤醒这些线程,完成工作并再次阻止它们等待下一个任务。任务总是相同的。我尝试使用条件变量(以及需要与它们一起使用的互斥量),但我最终放慢了我的代码速度而不是加快了速度;这主要是因为对所有需要的函数的调用非常昂贵(pthread_cond_wait/pthread_cond_signal/pthread_mutex_lock/pthread_mutex_unlock)。使用线程池(我也没有)没有意义,因为它是一个过于通用的构造;在这里我只想谈谈我的具体任务。根据实现情况,我还会为队列支付性能损失。对于

c++ - 如何定期唤醒 C++ 11 线程?

如果能提供一些关于如何定期(比如每100毫秒)唤醒C++11线程的指示,我将不胜感激。平台是Linux,语言是C++。我遇到了这个解决方案:C++11:CallingaC++functionperiodically但是他们在那里调用回调函数,然后在计时器间隔内休眠。这意味着实际周期是函数执行时间+间隔。我想以固定的时间间隔调用回调,而不考虑其执行时间。我想知道Boost是否有帮助?但我宁愿不使用它,因为这个项目不是多平台的,我想尽量减少第三方库的使用。也许将POSIX计时器与C++线程相结合是一种前进的方式?我不确定它到底是如何工作的。如有任何关于如何开始的建议,我们将不胜感激。

【STM32笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)

【STM32笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)【STM32笔记】低功耗模式配置及避坑汇总前文:blog.csdn.net/weixin_53403301/article/details/128216064【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案)低功耗模式如图所示停止模式有三种分别是012其中01可以由串口唤醒2只能由LPUART唤醒在手册里可以查到进入也很简单:/*!*@brief 进入低功耗模式 **@param [in] mode_flag:模式标志* 0/大于4不进入任何模式

c++ - 从 usleep 中唤醒一个 std::thread

考虑以下示例:#include#include#include#include#includevoidsleepy(){usleep(1.0E15);}intmain(){std::threadsleepy_thread(sleepy);//Wakeitupsomehow...?sleepy_thread.join();}这里我们有一个永远休眠的线程。我想加入它,而不必永远等待它自发地从sleep中醒来。有没有办法从外部告诉它“嘿伙计,醒醒!”,以便我可以在合理的时间内加入它?我绝对不是线程方面的专家,所以如果可能的话不要假设任何东西。 最佳答案