Service要给Activity传递消息,需要用到广播。
这里,使用的是前两个例子的代码,只是在Service每隔2秒就自动发送一个广播。而activity在收到广播后,更新一个textview的显示。
Service的代码:
- private void doInBackground() {
- new Thread(new Runnable() {
- public void run() {
- for (int i = 0; i < 10; i++) {
- Intent intent = new Intent("com.gdp2852.demo.service.broadcast");
- intent.putExtra("i", ""+i);
- sendBroadcast(intent);
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }).start();
- }
Receiver的代码:
- IntentFilter filter = new IntentFilter("com.gdp2852.demo.service.broadcast");
- registerReceiver(receiver, filter);
- private BroadcastReceiver receiver = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- TextView tv = (TextView) findViewById(R.id.tv);
- tv.setText("发送过来的内容:"+intent.getExtras().getString("i"));
- Toast.makeText(Demo_ServiceActivity.this, intent.getAction()+" i:"+intent.getExtras().getString("i"), Toast.LENGTH_LONG).show();
- }
- };
Service与Activity间消息传递示例
本文展示了如何在Android中使用广播实现Service到Activity的消息传递。Service定期发送广播,Activity接收并更新UI。
9456

被折叠的 条评论
为什么被折叠?



