在BroadcastReceiver中能否监听系统时间?

青蛙 2010-09-15 09:45:32
就是想实现某个记录在某个时间能自动更新一次状态(有多条记录),于是想到用BroadcastReceiver来处理,但是怎么在这里监听系统的时间?
或者有没有其他办法替代这种方式。
...全文
505 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
行者杨小白 2012-03-27
  • 打赏
  • 举报
回复
我想监听系统时间,当时间到某个设定的时候就开启某个程序,怎么办呢?
青蛙 2010-09-20
  • 打赏
  • 举报
回复
另外,查询资料说需要创建一个什么Binder extends Handle的类,不知道这个功能是什么?
查看API Demos里也基本都有这个。
青蛙 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sodino 的回复:]

引用 6 楼 runbing 的回复:

查了好多Service结合BroadcastReceiver的例子,都是没法运行起来的,所以也没有办法研究是否可行。
guoyoulei520同学的那个例子我加到BroadCastReceiver里,没效果,不知道要怎么激活这个。
直接走Service似乎不成功。


一楼的代码需要注册,他只告诉你一半。


registerRece……
[/Quote]
这个我去查资料后加上去了,但是在BroadCastReceiver的onReceive方法里用Log跟踪,一直没进来,不知道什么原因。
查看应用程度的“正在运行的服务”里有一个我项目的Service,但没有任何动作。
青蛙 2010-09-20
  • 打赏
  • 举报
回复
试了一下,Service在不配置AndroidManifest的情况下只能使用事件来激活,还以为可以一开启Activity就可以激活呢,搞半天是这个问题。
Sodino 2010-09-20
  • 打赏
  • 举报
回复
请参考

http://www.devdiv.net/bbs/thread-33913-1-2.html
Sodino 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 runbing 的回复:]

查了好多Service结合BroadcastReceiver的例子,都是没法运行起来的,所以也没有办法研究是否可行。
guoyoulei520同学的那个例子我加到BroadCastReceiver里,没效果,不知道要怎么激活这个。
直接走Service似乎不成功。
[/Quote]

一楼的代码需要注册,他只告诉你一半。


registerReceiver(
mBroadcastReceiver(),
new IntentFilter(Intent.ACTION_TIME_TICK));
}
青蛙 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huanyufeng 的回复:]

貌似你也可以每次启动去自动检测更新吧!
[/Quote]
启动检测不现实,因为那个应用不一定会经常开启,所以只能常驻了,除了运行结束自己销毁除外。
青蛙 2010-09-19
  • 打赏
  • 举报
回复
查了好多Service结合BroadcastReceiver的例子,都是没法运行起来的,所以也没有办法研究是否可行。
guoyoulei520同学的那个例子我加到BroadCastReceiver里,没效果,不知道要怎么激活这个。
直接走Service似乎不成功。
huanyufeng 2010-09-15
  • 打赏
  • 举报
回复
貌似你也可以每次启动去自动检测更新吧!
青蛙 2010-09-15
  • 打赏
  • 举报
回复
查了一下ACTION_TIME_TICK的作用,需要写线程来跟踪,但这有一个问题。
如果我的应用关掉了,这个操作也就没有办法了,这样似乎得用Service来处理了。
青蛙 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guoyoulei520 的回复:]

Java code
BroadcastReceiver mBroadcast =new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (acti……
[/Quote]
感谢回答,能再问一下么,这个的工作机制是什么?系统自己逐秒更新状态还是什么?需要额外写方法逐秒跟踪么?
牛叔 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guoyoulei520 的回复:]

Java code
BroadcastReceiver mBroadcast =new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (acti……
[/Quote]
学习了
凉凉二点凉 2010-09-15
  • 打赏
  • 举报
回复
BroadcastReceiver mBroadcast =new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_TIME_TICK)) {
mContext.sendBroadcast(new Intent(FRESH));
}
}
};


ACTION_TIME_TICK为系统时间

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧