Android學習筆記(五)Activiy學習——Service

創建一個Service

右鍵--new--service

創建一個service

在MainActiviy中

//啓動
findViewById(R.id.btnService).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startService(new Intent(MainActivity.this,MyService.class));
    }
});
//停止(服務的實例在操作系統中只有一個)
findViewById(R.id.btnService).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        stopService(new Intent(MainActivity.this,MyService.class));
    }
});
在service中

//執行startService時會執行
@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    new Thread(){

        @Override
        public void run(){
            super.run();
            System.out.println("服務正在運行");

            while (true){
                try {
                    sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }
        }

    }.start();
    return super.onStartCommand(intent, flags, startId);
}


綁定service(也會創建)


bindService(new Intent(MainActivity.this, MyService.class), this, Context.BIND_AUTO_CREATE);


在service文件中設置

@Override
public IBinder onBind(Intent intent) {
    return new Binder();
}

解綁service(destroy)

unbindService(this);

activity與service的通信

啓動service並通信

在startService中添加

Intent i = new Intent(this,MyService.class);
i.putExtra("data","from activity");

然後在service的啓動代碼中獲取

intent.getStringExtra("data");


綁定service並通信











發佈了25 篇原創文章 · 獲贊 10 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章