Android 简单Activity和Service的交互代码

转载 2012年03月21日 15:50:33

http://rayln.iteye.com/blog/1179463

Activity如何互相交互, 更新Acivity控件?
请看例子:

Broadcast1Activity.java

Java代码  收藏代码
    package com.cn;  
      
    import android.app.Activity;  
    import android.content.Intent;  
    import android.content.IntentFilter;  
    import android.os.Bundle;  
    import android.view.View;  
    import android.view.View.OnClickListener;  
    import android.widget.Button;  
      
    public class Broadcast1Activity extends Activity {  
        /** Called when the activity is first created. */  
        private static String SMS_ACTION = "com.webabcd.service.msg";  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            Button btn1 = (Button)findViewById(R.id.button1);  
            btn1.setOnClickListener(new OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    SMSReceiver r = new SMSReceiver();  
                    IntentFilter intent = new IntentFilter();  
                    intent.addAction(SMS_ACTION);  
                    Broadcast1Activity.this.registerReceiver(r, intent);  
                }  
            });  
        }  
        //button onclick事件  
        public void startService(View v){  
            Intent i = new Intent(Broadcast1Activity.this,StartService.class);  
            System.out.println("111");  
            this.startService(i);  
            System.out.println("222");  
        }  
    }  



SMSReceiver.java (广播接收类)

Java代码  收藏代码
    package com.cn;  
      
    import android.content.BroadcastReceiver;  
    import android.content.Context;  
    import android.content.Intent;  
    import android.widget.Button;  
      
    public class SMSReceiver extends BroadcastReceiver {  
      
        @Override  
        public void onReceive(Context context, Intent intent) {  
            System.out.println("have recevie message");  
            Broadcast1Activity b = (Broadcast1Activity)context;  
            Button button1 = (Button)b.findViewById(R.id.button1);  
            System.out.println(button1.getText());  
        }  
      
    }  




StartService.java

Java代码  收藏代码
    package com.cn;  
      
    import android.app.Service;  
    import android.content.Intent;  
    import android.os.IBinder;  
      
    public class StartService extends Service {  
      
        @Override  
        public IBinder onBind(Intent intent) {  
            System.out.println("onBind");  
            return null;  
        }  
          
        @Override  
        public void onCreate() {  
            System.out.println("onCreate");  
            super.onCreate();  
        }  
      
        @Override  
        public void onStart(Intent intent, int startId) {  
            System.out.println("onStart");  
            sendMsg("send msg");  
            super.onStart(intent, startId);  
        }  
      
        @Override  
        public int onStartCommand(Intent intent, int flags, int startId) {  
            System.out.println("onStartCommand");  
            return super.onStartCommand(intent, flags, startId);  
        }  
      
        public void sendMsg(String msg){  
             // 指定广播目标的 action (注:指定了此 action 的 receiver 会接收此广播)     
            Intent intent = new Intent("com.webabcd.service.msg");     
            // 需要传递的参数     
            intent.putExtra("msg", msg);     
            // 发送广播     
            this.sendBroadcast(intent);     
        }  
      
    }  



AndroidManifest.xml

Java代码  收藏代码
    <?xml version="1.0" encoding="utf-8"?>  
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
          package="com.cn"  
          android:versionCode="1"  
          android:versionName="1.0">  
        <uses-sdk android:minSdkVersion="8" />  
      
        <application android:icon="@drawable/icon" android:label="@string/app_name">  
            <activity android:name=".Broadcast1Activity"  
                      android:label="@string/app_name">  
                <intent-filter>  
                    <action android:name="android.intent.action.MAIN" />  
                    <category android:name="android.intent.category.LAUNCHER" />  
                </intent-filter>  
            </activity>  
            <service android:name=".StartService" />  
        </application>  
    </manifest>  



该例子为完整的从Activity启动一个广播接收类, 然后启动一个Service, 并且从Service中发送消息到Activity


相关文章推荐

Android中Activity和Service简单交互的例子

http://blog.sina.com.cn/s/blog_66baa50f0100vqoz.html java代码: ServiceActivity代码: package com.c...

Activity与本地Service的简单交互

  • 2012年11月02日 15:00
  • 676KB
  • 下载

Android Service与Activity交互

  • 2016年11月03日 16:36
  • 3.82MB
  • 下载

android Service Activity三种交互方式

android SDK提供了Service,用于类似*nix守护进程或者windows的服务。 Service有两种类型: 本地服务(Local Service):用于应用程序内部 远程服务(...

android中activity和service的交互

  • 2015年03月03日 14:58
  • 1.65MB
  • 下载

android Service之二:和Activity交互的本地服务

如果Service和Activity之间需要传递参数或者方法调用。需要使用bind和unbind方法。 具体做法是,服务类增加接口(非必须,在调用类里也可以用下例中的ServiceBinder去强转...
  • LAMP_zy
  • LAMP_zy
  • 2012年07月02日 20:19
  • 2841

Android Service Activity三种交互方式(附源码)

android SDK提供了Service,用于类似*nix守护进程或者windows的服务。 Service有两种类型: 1.本地服务(Local Service):用于应用程序内部 2.远程...

Android Service与Activity交互

andriod程序中,service一般处于后台运行,activity则有相应的界面,能与用户交互。本例主要研究service与activity之间通信,实现机制是service发送一个广播,acti...

android activity和service的交互介绍

android开发中,实现activity和service的相互交互
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 简单Activity和Service的交互代码
举报原因:
原因补充:

(最多只允许输入30个字)