【Android应用实例之四】计时器之通过Service&BroadcastReceiver实现UI动态更新

本文详细介绍了如何使用Service和BroadcastReceiver在Android应用中实现计时器功能,通过Service每1秒发送广播通知时间变化,Activity通过BroadcastReceiver接收广播更新UI展示时间。关键点包括Service的应用、BroadcastReceiver的应用,以及单向通信的实现。
摘要由CSDN通过智能技术生成

转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/6844441  作者:张燕广

实现的功能:计时器。

实现的思路:1)后台Service每隔1秒发送广播通知时间已发生变化;

               2)UI层(Activity)通过BroadcastReceiver接收到广播,更新显

                      示的时间。

关键技术点:Service的应用、BroadcastReceiver的应用

说明:1)Activity与通过startService方法启动的Service之间无法直接进行通信,但是借助BroadcastService可以实现两者之间的通信。

            2)实现计时器的方式有很多种,比如通过Thread的sleep等,此处只是演示Service与BroadcastService的组合应用(可以将Service中获取当前时间的操作想象为非常耗时的操作,所以不宜直接在UI层来做)。

           3)此处演示的Service与BroadcastService的组合是“单向通信”即:UI层只是被动接收Service发来的广播,而没有主  动发送广播控制后台Service。下一篇文章将会编写一个实例进行演示“双向通信”。

第一步:新建一个工程&

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,以下是一个简单的示例代码,演示了如何使用Activity、ServiceBroadcastReceiver和ContentProvider四种组件实现应用逻辑和UI交互: 1. Activity示例代码: ``` public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClickButton(View view) { Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); } } public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); } } ``` 2. Service示例代码: ``` public class MyService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { // 执行后台任务 return START_STICKY; } } ``` 3. BroadcastReceiver示例代码: ``` public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 处理广播 } } ``` 4. ContentProvider示例代码: ``` public class MyContentProvider extends ContentProvider { @Override public boolean onCreate() { // 初始化ContentProvider return true; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { // 处理查询请求 return null; } } ``` 以上是四种组件的简单示例代码,具体实现会根据实际需求和业务逻辑进行相应的修改和扩展。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值