怎么在Android中实现Service与Activity的通信
本篇文章为大家展示了怎么在Android中实现Service与Activity的通信,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

专注于为中小企业提供网站设计、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业桃源免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了超过千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
第一种方式:通过MyBinder方式调用Service方法
MainActivity
public class MainActivity extends Activity {
private MyConn conn;
private MyBinder myBinder;//我定义的中间人对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this,BanZhengService.class);
//连接服务
conn = new MyConn();
bindService(intent, conn, BIND_AUTO_CREATE);
}
//点击按钮调用服务里面办证的方法
public void click(View v) {
myBinder.callBanZheng(10000000);
}
//监视服务的状态
private class MyConn implements ServiceConnection{
//当服务连接成功调用
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//获取中间人对象
myBinder = (MyBinder) service;
}
//失去连接
@Override
public void onServiceDisconnected(ComponentName name) {
}}
@Override
protected void onDestroy() {
//当activity 销毁的时候 解绑服务
unbindService(conn);
super.onDestroy();
}
}BanZhengService
public class BanZhengService extends Service {
//把我定义的中间人对象返回
@Override
public IBinder onBind(Intent intent) {
return new MyBinder();
}
//办证的方法
public void banZheng(int money){
if (money>1000) {
Toast.makeText(getApplicationContext(), "我是领导 把证给你办了", 1).show();
}else {
Toast.makeText(getApplicationContext(), "这点钱 还想办事....", 1).show();
}
}
//[1]定义中间人对象(IBinder)
public class MyBinder extends Binder{
public void callBanZheng(int money){
//调用办证的方法
banZheng(money);
}
}}第二种方式:通过接口Iservice调用Service方法
MainActivity
public class MainActivity extends Activity {
private MyConn conn;
private Iservice myBinder;//我定义的中间人对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this,DemoService.class);
//连接服务
conn = new MyConn();
bindService(intent, conn, BIND_AUTO_CREATE);
}
//点击按钮调用服务里面办证的方法
public void click(View v) {
myBinder.callBanZheng(10000000);
// myBinder.callPlayMaJiang();
// myBinder.callXiSangNa();
}
//监视服务的状态
private class MyConn implements ServiceConnection{
//当服务连接成功调用
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//获取中间人对象
myBinder = (Iservice) service;
}
//失去连接
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
@Override
protected void onDestroy() {
//当activity 销毁的时候 解绑服务
unbindService(conn);
super.onDestroy();
}
}DemoService
public class DemoService extends Service {
//把我定义的中间人对象返回
@Override
public IBinder onBind(Intent intent) {
return new MyBinder();
}
//办证的方法
public void banZheng(int money){
if (money>1000) {
Toast.makeText(getApplicationContext(), "我是领导 把证给你办了", 1).show();
}else {
Toast.makeText(getApplicationContext(), "这点钱 还想办事....", 1).show();
}
}
//打麻将的方法
public void playMaJiang(){
System.out.println("陪领导打麻将");
}
//洗桑拿的方法
public void 洗桑拿(){
System.out.println("陪领导洗桑拿");
}
//[1]定义中间人对象(IBinder)
private class MyBinder extends Binder implements Iservice{
public void callBanZheng(int money){
//调用办证的方法
banZheng(money);
}
public void callPlayMaJiang(){
//调用playMaJiang 的方法
playMaJiang();
}
public void callXiSangNa(){
//调用洗桑拿的方法
洗桑拿();
}}}接口Iservice
public interface Iservice {
//把领导想暴露的方法都定义在接口里
public void callBanZheng(int money);
// public void callPlayMaJiang();
}上述内容就是怎么在Android中实现Service与Activity的通信,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
当前题目:怎么在Android中实现Service与Activity的通信
URL地址:http://www.jxjierui.cn/article/jpicdi.html


咨询
建站咨询
