綁定服務

1、DemoService.java編寫

代碼如下:

public class DemoService extends Service {

    /**
     *
     * 
     * 
     */

    public IBinder onBind(Intent intent) {
        

        return new MyBinder();//由于返回值是接口類型的IBinder,所以要新建一個類
    }
    /**
     * MyBinder類既是onBind方法的返回值
     *
     */
    public class MyBinder extends Binder{
        /**
         *
         * 
         */
        public void callMethodInService(int money){
            if(money>500){
                methodInService();
            }else{
                Toast.makeText(DemoService.this, "這點錢還想辦事呀?", 0).show();
            }
        }
    }
    
    

    /**
     * 服務里面的方法
     */
    public void methodInService(){
        Toast.makeText(this, "哈哈,我是服務的方法,被你調用了。", 0).show();
    }
    
    @Override
    public void onCreate() {
        System.out.println("服務被創建了");
        super.onCreate();
    }
    @Override
    public void onDestroy() {
        System.out.println("服務被銷毀了。");
        super.onDestroy();
    }
}

2、MainActivity.java 編寫

代碼如下:

public class MainActivity extends Activity {
    MyBinder myBinder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /**
     * 綁定服務,獲取服務里面的小蜜,間接的調用服務里面的方法。
     *
    /**
     * 服務連接成功的通訊頻道
     /
    public void bind(View view){
        Intent intent = new Intent(this,DemoService.class);
        //intent 意圖
        //conn 服務的通訊頻道
        //1 服務如果在綁定的時候不存在,會自動創建
        bindService(intent, new MyConn(), BIND_AUTO_CREATE);
    }*
     */
    private class MyConn implements ServiceConnection{
        //當服務被成功連接的時候調用的方法
        
        public void onServiceConnected(ComponentName name, IBinder service) {
        
            myBinder = (MyBinder) service;
        
        }
        //當服務失去連接的時候調用的方法
        
        public void onServiceDisconnected(ComponentName name) {
            
        }
    }
    
    /**
     * 調用服務里面的方法。
     * @param view
     */
    public void call(View view){
        
        myBinder.callMethodInService(3000);
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 使用步驟 總共需要的類如下: 1 創建服務類MyService繼承Service,并在清單文件中配置 2 定義一個...
    ldlywt閱讀 372評論 0 0
  • 一、前言學習了前面的活動與服務后,你會發現服務對于活動而言似乎就是透明的,相反活動對于服務也是透明的,所以我們還需...
    AiPuff閱讀 2,152評論 0 1
  • [文章內容來自Developers] 綁定服務是客戶端-服務器接口中的服務器。綁定服務可讓組件(例如 Activi...
    岳小川閱讀 1,126評論 0 1
  • 已經記不太清是什么時候知道了“小確幸”這個詞,小小的確定的幸福,不需要多么華麗的渲染,只需要內心得到足夠的安寧和滿...
    樂晴瑪利閱讀 461評論 3 3
  • 我愿化做一朵流云 從清晨的山間覓著清脆的鳴聲趕來 風阻擋不了我什么 追逐七彩的光是我一生的夢 也是所有披著生命外衣...
    若初yy閱讀 371評論 0 2