android定时更新
A. Android 后台服务调用接口,定时获取更新数据怎么实现的求大婶们给个实例类看看
新建一个Service,在里面新建线程,设置更新时间间隔。在activity里面开启服务就ok了
B. 如何定时刷新Android界面
Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。
利用Handler刷新界面
实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。
复制到剪贴板 java代码// 在onCreate()中开启线程 new Thread(new GameThread()).start();、 // 实例化一个handler Handler myHandler = new Handler() { //接收到消息后处理 public void handleMessage(Message msg) { switch (msg.what) { case Activity01.REFRESH: mGameView.invalidate(); //刷新界面 break; } super.handleMessage(msg); } }; class GameThread implements Runnable { public void run() { while (!Thread.currentThread().isInterrupted()) { Message message = new Message(); message.what = Activity01.REFRESH; //发送消息 Activity01.this.myHandler.sendMessage(message); try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } } 使用postInvalidate()刷新界面
使用postInvalidate则比较简单,不需要handler,直接在线程中调用postInvalidate即可。
复制到剪贴板 Java代码class GameThread implements Runnable { public void run() { while (!Thread.currentThread().isInterrupted()) { try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } //使用postInvalidate可以直接在线程中更新界 mGameView.postInvalidate(); } } }
C. Android开发系列七:怎么定时刷新界面
在做Android客户端软件的时候经常需要刷新某区块内容,比如微博客户端就需要定期检测是否有新发布的微博内容,如果有新微博客户端就显示出来。Android里可以选用两种方式来实现此功能。
方式一、使用Timer(定时器)和TimerTask实现
示例代码:
public class MainActivity extends Activity {
private TextView msg;
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
update();
break;
}
super.handleMessage(msg);
}
void update() {
//刷新msg的内容
}
};
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
msg = (TextView) findViewById(R.id.txtMsg);
msg.setText("你好啊!");
timer.schele(task, 1000 * 40, 1000 * 30); //启动timer
}
@Override
protected void onDestroy() {
if (timer != null) {// 停止timer
timer.cancel();
timer = null;
}
super.onDestroy();
}
}
方式二、使用Runnable和Handler
示例代码
public class MainActivity extends Activity {
private TextView msg;
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
this.update();
handler.postDelayed(this, 1000 * 120);// 间隔120秒
}
void update() {
//刷新msg的内容
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
msg = (TextView) findViewById(R.id.txtMsg);
msg.setText("你好啊!");
handler.postDelayed(runnable, 1000 * 60);
}
@Override
protected void onDestroy() {
handler.removeCallbacks(runnable); //停止刷新
super.onDestroy();
}
}
第一种方式还适用于消息通知的方式实现更新,第二种方式通常是主动去检查是否需要刷新。对于定时刷新这种使用第二种方式更好。
D. android 确定时间点自动更新数据的定时器
这个定时器写出来并没有什么难度,难点在于需要保证定时器不被杀死!写一个service来作为更新数据的后台服务,然后利用广播来保证此service不被杀死,即使杀死后仍能重启!
E. android 当关闭程序时,service 每天定时更新数据
这种需求可以用AlarmManager实现,在AlarmManager里设置初次执行时间和循环间隔,到设置时间了触发Service更新数据
F. android项目,想实现先从网上下载数据,以后可以从本地的sqllite数据库里调用,并且定时的更新数据库
给你提供个大概思路:
1、首先是下载数据
主要方式:a、套接字通信。 特点:快速,效率高。 但修改麻烦、适用性低。
b、webservice通信。特点:无状态通信,轻便,较实用,应变强、跨平台等,但它依 赖于服务器的webservice方法。
c、hession通信/json通信。特点:跨平台,速度快(至少比xml快)。
d、下载服务端生成好的数据文件,然后再本地解析。特点:稳定、判断性强,可以 多线程实现,提 高效率,还可用作备份。
2、 定时更新
主要方式:开启一个时间服务,监听系统的时间变化广播,系统的时、分发生变化时,都会有一个广播,你可以监听此广播,并在需要的时候向服务器发送更新请求。
或者,定制定时任务,这个可以直接网络alarmManager相关内容。
答此,已毕,纯手工,望对君有帮助。
G. 为什么我的安卓手机不能自动更新时间怎样解决
不能自动更新时间,是因为没有打开手机【自动设置】。
以华为手机为例,打开步骤如下:
1、解锁手机,居然这么打开设掘槐信置;如下图所明早示: