首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

andorid 一个与activity有底据交互的本地服务

2012-09-09 
andorid 一个与activity有数据交互的本地服务欢迎转载,转载请注明出自:www.androidkaifa.com安卓开发网在

andorid 一个与activity有数据交互的本地服务
欢迎转载,转载请注明出自:www.androidkaifa.com    安卓开发网
在大多数情况下,android只需要调用本地服务(即调用者和在服务同一个进程内),下面的例子演示了如何调用本地服务在一个acitivity界面中,通过输入名称后,单击界面中按钮来测定服务运行,代码示例:
IService.java

package com.local.service;
public interface IService {
        public String getHelloResult(String name);
}


HelloService.java
public class HelloService extends Service {
    private MyServiceBinder myServiceBinder = new MyServiceBinder();
    @Override
    public IBinder onBind(Intent intent) {
        return myServiceBinder;
    }
    public class MyServiceBinder extends Binder implements IService {
                @Override
                public String getHelloResult(String name) {
                        // TODO Auto-generated method stub
                        return name+":Hello World";
                }
    }
}

LocalServiceCallDemo.java
public class LocalServiceCallDemo extends Activity {
        private EditText mEditText;
        private IService serviceInstance;
        private TextView textView;
        ServiceConnection conn = new ServiceConnection() {
                @Override
                public void onServiceConnected(ComponentName name, IBinder service) {
                        Log.i("INFO", "Service bound");
                        serviceInstance = (IService) service;
                }

                @Override
                public void onServiceDisconnected(ComponentName arg0) {
                        Log.i("INFO", "Service Unbound");
                }

        };
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                Button mButton = (Button) findViewById(R.id.myButton);
                mEditText = (EditText) findViewById(R.id.myEditText);
                textView = (TextView) findViewById(R.id.myTextView01);
                bindService(new Intent("com.local.service.MY_SERVICE"), conn,
                                Context.BIND_AUTO_CREATE);
                mButton.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                Editable str;
                                str = mEditText.getText();
                                String result = serviceInstance.getHelloResult(str.toString());
                                textView.setText(result);
                        }
                });
        }
}

热点排行