Service、Alarm、BroadcastReceiverの使い方
6699 ワード
1:サービスクラスを定義し、サービスクラスでAlarmManagerを使用してサービスの実行を管理する
2:AndroidManifest.xmlファイルにこのサービスを登録する
3:ブロードキャスト受信機の定義
4:AndroidManifest.xmlファイルにこのブロードキャスト受信機を登録する
public class WtacService extends Service{
private AlarmManager alarmManager = null;
private PendingIntent alarmIntent = null;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
alarmManager = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
String ALARM_ACTION = WR.ACTION_WTAC_ALAEM;
Intent intentTo = new Intent(ALARM_ACTION);
alarmIntent = PendingIntent.getBroadcast(this, 0, intentTo, 0);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
final Context context = this.getApplicationContext();
int alarmType = AlarmManager.ELAPSED_REALTIME_WAKEUP;
long timeRepeat = SystemClock.elapsedRealtime()+(10*1000);
long intervalMillis = 10*1000;
alarmManager.setInexactRepeating(alarmType, timeRepeat, intervalMillis, alarmIntent);
Thread mThread = new Thread(new Runnable(){
@Override
public void run() {
try{
DBManager dbManager = new DBManager(context);
List<Wtac> list = dbManager.selectWtacs();
Gson gson = new Gson();
String json = gson.toJson(list, new TypeToken<List<Wtac>>(){}.getType());
System.out.println(" :"+json);
}finally{
//
stopSelf();
}
}
});
mThread.start();
return Service.START_NOT_STICKY;
}
}
2:AndroidManifest.xmlファイルにこのサービスを登録する
<service
android:name="com.wzh.service.WtacService"
android:enabled="true"
android:exported="false" />
3:ブロードキャスト受信機の定義
public class WtacAlarmReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent startIntent = new Intent(context, WtacService.class);
context.startService(startIntent);
}
}
4:AndroidManifest.xmlファイルにこのブロードキャスト受信機を登録する
<receiver android:name="com.wzh.receiver.WtacAlarmReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.wzh.receiver.ACTION_WTAC_ALAEM"/>
</intent-filter>
</receiver>