`
寻梦者
  • 浏览: 637889 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

定时更新UI之service跟broadcast

 
阅读更多

    使用service跟broadcast可以定时更新UI,这里简单复习了一下service跟broadcast的一些基本使用。

    在使用的时候需要注意对应的更新UI的那个广播需要在程序里面进行注册,因为这样可以确保onReceive方法里面回调的那个content是UI对应的activity,如此可以进行转换或许对应的ui控件进行更新。

   下面是一个简单的定时器小应用,这里直接贴代码了:

 

   TimeActivity :

 

	private TimeBroadcastReceiver receiver;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		receiver = new TimeBroadcastReceiver();
		startService(new Intent(this, TimeService.class));
		registerReceiver(receiver, new         IntentFilter(getString(R.string.time_broad_action)));
	}

	@Override
	protected void onDestroy() {
		unregisterReceiver(receiver);
		super.onDestroy();
	}
}

 

TimeService:

 

    @Override

	public void onCreate() {
		super.onCreate();
		startSyncTime();
	}

	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}
	
	public void startSyncTime(){
		final SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss");
		Timer timer = new Timer();
		timer.schedule(new TimerTask() {
			@Override
			public void run() {
				Intent intent = new Intent(getString(R.string.time_broad_action));
				intent.putExtra("time", df.format(new Date()));
				sendBroadcast(intent);
			}
		}, 1000, 1000);
	}
 

  TimeBroadcastReceiver:

    @Override

	public void onReceive(Context context, Intent intent) {
		TimeServiceActivity timeAct = (TimeServiceActivity) context;
		TextView tv_time = (TextView) timeAct.findViewById(R.id.tv_time);
		tv_time.setText(intent.getExtras().getString("time"));
	}
 

 

分享到:
评论
2 楼 ctlemon 2012-11-02  
楼主,timer你从来没有cancel过呢……
1 楼 追逐779 2012-08-02  
很好很实用,哈哈,谢啦~顶一个!

相关推荐

    Android之Service&BroadCastReceiver

    Service可以在启动时启动计数,在停止时结束计数,而BroadcastReceiver则可以监听到Service发出的计数更新广播,从而更新UI或其他业务逻辑。 总的来说,理解并熟练掌握Service和BroadcastReceiver的使用,对于...

    Android应用实例之计时器

    // 发送Broadcast更新UI mHandler.postDelayed(this, 1000); // 每秒执行一次 } }; @Override public int onStartCommand(Intent intent, int flags, int startId) { mHandler.post(mRunnable); return ...

    Android_Service.rar

    1. **意图Intent**:Service通过Intent接收启动或绑定请求,也可以通过Intent发送消息回Activity,例如更新UI或报告状态。 2. **Messenger或AIDL**:这两种方式允许跨进程通信,当Service和Activity不在同一个进程...

    android 广播和service 样例

    在Android系统中,广播(Broadcast)和Service是两个至关重要的组件,它们在应用程序间通信和后台任务处理中扮演着核心角色。本示例项目“android 广播和service 样例”提供了一个服务(Service)监听其他程序广播的...

    adr定时关机

    5. **System Service交互**:在Android中,关机是一个系统级别的操作,开发者需要与`SystemService`进行交互,调用相应的API来执行关机命令。这通常涉及反射机制,因为一些敏感操作可能不直接开放给第三方应用。 6....

    时间计时器

    【时间计时器】是一款基于Android Studio开发的应用,它整合了Broadcast Receiver(广播接收者)和服务(Service)等核心组件,以实现精准的时间管理功能。在Android应用开发中,理解和掌握这些知识点至关重要,因为...

    Android中Service服务详解(一)

    Service并不具备自己的UI,因此不直接与用户交互,但可以与其他组件如Activity、BroadcastReceiver等进行通信。 ### 一、Service简介 1. **定义**:Service是Android系统中用于在后台执行任务的组件,适合处理不...

    Android 定时打电话功能源码-IT计算机-毕业设计.zip

    开发者可以使用它来安排在未来某一特定时间启动Service或发送Broadcast。 3. **BroadcastReceiver**: 广播接收器是Android中的一个重要组件,用于监听系统或自定义广播事件。在这里,可能有一个BroadcastReceiver...

    Android桌面控件文本显示时间

    在Android平台上,开发人员可以利用AppWidgetProvider和Service组件创建桌面小部件(Widget),实现桌面实时...这个过程涉及到Android组件的交互、定时任务的设置以及UI的动态更新,是Android开发中的一个重要实践。

    Android四大组件快速入门

    **定义**:Intent是一种消息,用于启动Activity、Service或Broadcast Receiver。 **用途**: - **启动Activity/Service**:通过显式Intent指定目标。 - **发送广播**:通过隐式Intent发送广播。 **示例**:用户...

    Android智能手机天气预报系统设计.pdf

    系统的核心功能是实时天气查询,这需要定时更新数据。可以使用AlarmManager配合BroadcastReceiver来定期触发数据更新,Service负责后台下载和解析新数据。此外,用户界面应直观易用,展示温度、湿度、风速等关键信息...

    android最新天气预报源码

    3. **Service组件**:在这个项目中,可能使用了服务来在后台持续运行任务,比如定时更新天气信息。服务有两种类型,IntentService和Foreground Service。前者用于执行一次性任务,后者在用户界面不可见时仍能保持...

    android天气预报系统设计借鉴.pdf

    4. **实时更新** - 为了保持天气信息的最新,应用可以设定定时任务或使用Background Services定期检查服务器数据。此外,可以利用BroadcastReceiver监听网络状态变化,一旦网络可用,立即更新天气信息。 5. **权限...

    广播发送1

    `AsyncTask` 是一个轻量级的后台线程,用于在后台执行耗时操作,同时在主线程更新UI。在 `startCounter` 方法中,创建了一个 `AsyncTask` 的实例,用于执行计数任务。 在 `onProgressUpdate` 和 `onPostExecute` ...

    android开发入门教程

    第9章 我来“广播”你的“意图”——Intent和Broadcast面对面 9.1 Android应用程序的核心——Intent 9.1.1 Intent基础 9.1.2 用Intent启动一个新的Activity 9.1.3 Intent详细讲解 9.1.4 Android解析Intent实现 9.2 ...

    android中文api

    例如,它可能涵盖了四大组件(Activity、Service、Broadcast Receiver、Content Provider)的使用,UI设计(如布局、控件)的创建,数据存储(SQLite数据库、SharedPreferences)的方式,网络通信(HTTP请求、...

    安卓Android源码——quitesleep手机电话功能软件.zip

    在"quitesleep"中,广播接收器会监听这些事件,并触发相应的操作,如启动服务或更新UI。 3. **意图(Intent)**:意图是Android系统中用于组件间通信的重要机制。在电话功能中,可能会有各种意图用来启动通话活动、...

    疯狂Android讲义 13-19章

    这13-19章的内容,无疑是Android开发者进阶的重要部分,涉及了诸多关键知识点,包括但不限于UI设计、事件处理、多线程、网络编程、数据存储、服务以及Broadcast Receiver等。 首先,第13章可能涉及到Android用户...

    android.intent.action.TIME_TICK

    这个广播事件对于那些需要定时更新或依赖于系统时间的应用程序非常有用。 描述中提到的其他广播包括"SCREEN_ON"(屏幕开启)和"BATTERY"(电量改变)。"SCREEN_ON"广播在用户解锁设备或者屏幕由关闭状态变为打开...

    《Google Android开发入门与实战》.pdf

    10. Service应用:展示了Service的使用和生命周期,通过两个实例——定时提醒和音乐播放器,帮助读者理解Service的实际应用。 11. 开发基本步骤:概括了开发Android应用的一般步骤,包括规划、UI设计、数据操作、多...

Global site tag (gtag.js) - Google Analytics