国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android中Service和Activity相互通信示例代碼

2019-10-22 18:28:04
字體:
供稿:網(wǎng)友

前言

在Android中,Activity主要負責(zé)前臺頁面的展示,Service主要負責(zé)需要長期運行的任務(wù),所以在我們實際開發(fā)中,就會常常遇到Activity與Service之間的通信,本文就給大家詳細介紹了關(guān)于Android中Service和Activity相互通信的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細的介紹吧。

Activity向Service通信

第一種方式:通過MyBinder方式調(diào)用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.android/256545.html">activity_main);  Intent intent = new Intent(this,BanZhengService.class); //連接服務(wù)  conn = new MyConn(); bindService(intent, conn, BIND_AUTO_CREATE);  } //點擊按鈕調(diào)用服務(wù)里面辦證的方法 public void click(View v) {  myBinder.callBanZheng(10000000);  }   //監(jiān)視服務(wù)的狀態(tài) private class MyConn implements ServiceConnection{  //當服務(wù)連接成功調(diào)用 @Override public void onServiceConnected(ComponentName name, IBinder service) {  //獲取中間人對象  myBinder = (MyBinder) service;   } //失去連接 @Override public void onServiceDisconnected(ComponentName name) {   }} @Override protected void onDestroy() { //當activity 銷毀的時候 解綁服務(wù)  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(), "我是領(lǐng)導(dǎo) 把證給你辦了", 1).show(); }else {  Toast.makeText(getApplicationContext(), "這點錢 還想辦事....", 1).show(); } }   //[1]定義中間人對象(IBinder)  public class MyBinder extends Binder{  public void callBanZheng(int money){  //調(diào)用辦證的方法  banZheng(money); }  }}

第二種方式:通過接口Iservice調(diào)用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); //連接服務(wù)  conn = new MyConn(); bindService(intent, conn, BIND_AUTO_CREATE);  } //點擊按鈕調(diào)用服務(wù)里面辦證的方法 public void click(View v) {  myBinder.callBanZheng(10000000);// myBinder.callPlayMaJiang();// myBinder.callXiSangNa();  }   //監(jiān)視服務(wù)的狀態(tài) private class MyConn implements ServiceConnection{  //當服務(wù)連接成功調(diào)用 @Override public void onServiceConnected(ComponentName name, IBinder service) {  //獲取中間人對象  myBinder = (Iservice) service;   } //失去連接 @Override public void onServiceDisconnected(ComponentName name) {   }  } @Override protected void onDestroy() { //當activity 銷毀的時候 解綁服務(wù)  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(), "我是領(lǐng)導(dǎo) 把證給你辦了", 1).show(); }else {  Toast.makeText(getApplicationContext(), "這點錢 還想辦事....", 1).show(); } }  //打麻將的方法 public void playMaJiang(){ System.out.println("陪領(lǐng)導(dǎo)打麻將"); }  //洗桑拿的方法 public void 洗桑拿(){ System.out.println("陪領(lǐng)導(dǎo)洗桑拿");  }     //[1]定義中間人對象(IBinder)  private class MyBinder extends Binder implements Iservice{  public void callBanZheng(int money){  //調(diào)用辦證的方法  banZheng(money); }  public void callPlayMaJiang(){  //調(diào)用playMaJiang 的方法  playMaJiang();   }  public void callXiSangNa(){  //調(diào)用洗桑拿的方法  洗桑拿(); }}}

接口Iservice

public interface Iservice { //把領(lǐng)導(dǎo)想暴露的方法都定義在接口里 public void callBanZheng(int money);// public void callPlayMaJiang(); }

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 澄迈县| 德钦县| 高碑店市| 左权县| 察雅县| 台安县| 昭平县| 镇康县| 阿克| 调兵山市| 余庆县| 白河县| 广元市| 三亚市| 滁州市| 扶余县| 马公市| 且末县| 百色市| 大余县| 宁武县| 旬邑县| 侯马市| 兴国县| 乌鲁木齐县| 石城县| 葫芦岛市| 沈丘县| 石嘴山市| 甘南县| 乳山市| 个旧市| 色达县| 临夏县| 辽宁省| 阿拉善左旗| 南丰县| 太谷县| 彭州市| 封开县| 三明市|