本社群由Nantou.py使用者社群以及國立虎尾科技大學電機資訊學院負責維護,它是一群熱愛智慧生活科技以及Python的專業教師所組成,大家一同快樂地研究有關數位生活中人工智慧、大數據、物聯網、雲端服務、APPS、福祉科技、感知網路服務、車載網路服務、及網際網路等資通訊技術,並運用這些資通訊以及Python技術來提升我們的日常生活品質,建立更好的生活環境。
2010年4月11日 星期日
啟動或關閉本地服務應用程式
在Android的框架中,Activity扮演著手機的操控程序,它是前景執行的程式,若在某些場合中,不需要人機介面,而是希望在背景下執行,這時我們就需要利用Service。底下為利用Activity來啟動或關閉本地服務範例的步驟:
1. 首先建立一個新的專案,繼承Acticity建立LocalServiceController類別。
2. 建立兩個按鈕,其id分別為start和stop。
3. 撰寫這兩個按鈕的事件處理程序,分別呼叫startService及stopService來啟動LocalService的服務程式。
package com.example.localservice;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class LocalServiceController extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button startbutton = (Button) findViewById(R.id.start);
startbutton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startService(new Intent(LocalServiceController.this, LocalService.class));
}
});
Button stopbutton = (Button) findViewById(R.id.stop);
stopbutton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
stopService(new Intent(LocalServiceController.this, LocalService.class));
}
}); }
}
4. 繼承Service類別建立並撰寫LocalService類別。
package com.example.localservice;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class LocalService extends Service {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Toast.makeText(this, "service created", Toast.LENGTH_SHORT).show();
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Toast.makeText(this, "service stoped", Toast.LENGTH_SHORT).show();
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Toast.makeText(this, "service started", Toast.LENGTH_SHORT).show();
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(this, "service binded", Toast.LENGTH_SHORT).show(); return null;
}
}
5. 利用Toast物件來顯示資料。
Toast.makeText(this, "service created", Toast.LENGTH_SHORT).show();
6. 務必記得在AndroidManifest.xml中增加Local Service服務。
7. 執行程式並觀察訊息顯示的順序,瞭解服務啟動及關閉會呼叫那些程式。
注意並沒有呼叫Bind
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言