gpt4 book ai didi

基于 Android 的 SMS 服务器和 WakeLock?

转载 作者:行者123 更新时间:2023-11-30 03:31:27 24 4
gpt4 key购买 nike

我构建了一个基于 Android 的 SMS 服务器。

它应请求服务器(每 x 秒)发送新的 SMS(在无限循环中)。Android 设备将始终通过 USB 插入服务器。

新消息的获取作为一项服务运行,我需要它全天候运行 24/7。由于电池耗尽在这里不是问题,我应该如何使用 WakeLock?

当我读到一些关于部分锁的文章时,它似乎就足够了。

但是我还没有找到任何线索,我应该在什么时候调用 wakeLock.acquire();和 wakeLock.release();

我不认为它可以那样工作:

while(true){
wakeLock.acquire();
//Do stuff
wakeLock.release();
Thread.sleep(10000);
}

考虑到这个想法...任何输入都将不胜感激。例如,安排每天重新启动手机是否有意义,这样它就不会卡住?等等……

最佳答案

如解释here , 可以使用各种类型的锁。如果你想一直在线,那么你可以在循环外获取它:

boolean end = false;
wakeLock.acquire();
while(!end){

//Do stuff

Thread.sleep(10000);
}
wakeLock.release();

但是你真的不应该为此使用循环,而是尝试使用处理程序来执行重复任务: http://developer.android.com/reference/android/os/Handler.html

示例:

    private class MyRunnable implements Runnable {

@Override
public void run() {
// Do stuff
handler.postDelayed(new MyRunnable(), 100000);

}

}

Handler handler = new android.os.Handler();
handler.postDelayed(new MyRunnable(), 1000000);

如果您需要经常且在短时间内执行重复任务,则处理程序很有用。如果时间更长(比如几个小时),请使用 AlarmManager : Alarm Manager Example这是您可以做什么的一个很好的例子,他们也使用唤醒锁来完成他们的任务。

关于基于 Android 的 SMS 服务器和 WakeLock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17403188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com