当前位置:   article > 正文

android 服务与广播不同,android服务(Service)与广播(Broadcast)

android中service与broadcast的区别

package com.liu;

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.ComponentName;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.content.ServiceConnection;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.os.IBinder;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TimePicker;

public class KitchenTimer extends Activity {

/** Called when the activity is first created. */

public long alarmtime;

private TimePicker timePicker;

private Button button;

private KitchenTimerService kitchenTimerService;

private final KitchenTimerReceiver receiver = new KitchenTimerReceiver();

//第二步       服务

private ServiceConnection serviceconnection = new ServiceConnection() {

@Override

public void onServiceDisconnected(ComponentName name) {

// TODO Auto-generated method stub

kitchenTimerService = null;

}

//D:\Android\android-sdk-windows\docs\reference\android\content\ServiceConnection.html

@Override

public void onServiceConnected(ComponentName name, IBinder service) {

// TODO Auto-generated method stub

kitchenTimerService = ((KitchenTimerService.KitchenTimerBinder) service)

.getService();

}

};

//第三步

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

button = (Button) findViewById(R.id.button01);

timePicker = (TimePicker) findViewById(R.id.timepicker01);

timePicker.setCurrentHour(0);

timePicker.setCurrentMinute(1);

timePicker.setIs24HourView(true);

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

long hour = timePicker.getCurrentHour();

long minute = timePicker.getCurrentMinute();

alarmtime = (hour * 60 + minute) * 60 * 1000;

kitchenTimerService.schedule(alarmtime);

moveTaskToBack(true);

}

});

Intent intent = new Intent(this,KitchenTimerService.class);

startService(intent);

IntentFilter intentFilter = new IntentFilter(KitchenTimerService.ACTION);

//注册广播接收

registerReceiver(receiver, intentFilter);

//绑定服务

bindService(intent, serviceconnection, Context.BIND_AUTO_CREATE);

//unbindService(serviceconnection);

}

//  第一步  接收广播

private class KitchenTimerReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

//MediaPlayer mp = MediaPlayer.create(KitchenTimer.this, R.raw.alarm);

//mp.start();

System.out.println("Time Over!");

}

}

//第四步

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

unbindService(serviceconnection);

unregisterReceiver(receiver);

kitchenTimerService.stopSelf();

}

}

package com.liu;

import java.util.Timer;

import java.util.TimerTask;

import android.app.Service;

import android.content.Intent;

import android.os.Binder;

import android.os.IBinder;

public class KitchenTimerService extends Service {

private Timer timer;

public static final String ACTION = "定时器服务";

class KitchenTimerBinder extends Binder {

KitchenTimerService getService() {

return KitchenTimerService.this;

}

}

@Override

public IBinder onBind(Intent intent) {

// TODO Auto-generated method stub

return new KitchenTimerBinder();

}

@Override

public void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

if (timer != null) {

timer.cancel();

timer = null;

}

}

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

}

public void schedule(long delay) {

if (timer!=null) {

timer.cancel();

}

timer = new Timer();

TimerTask timerTask = new TimerTask() {

@Override

public void run() {

// TODO Auto-generated method stub

//在这里发送广播

sendBroadcast(new Intent(ACTION));

}

};

timer.schedule(timerTask, delay);

}

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/902095
推荐阅读
相关标签
  

闽ICP备14008679号