サービスとブロードキャストについてandroid.IでAlarm Reciverクラス(BroadCastの拡張クラス)を使用してRingtonePlayingサービスクラスに移動して音楽を開始するAlarm Clockページを作成します。今はturn_offボタンをクリックして停止したいのですが、私はそれを行うことはできません。私 おかげandroidでサービスを再生する方法を停止する
を助けてくださいAlarmClockクラス:
private Button turn_on;
public Button turn_off;
private TextView update_text;
Context context;
AlarmManager alarm_manager;
TimePicker time_picker;
PendingIntent pending_intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm_clock);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
onButtonClickAlarm();
}
private void onButtonClickAlarm() {
this.context=this;
turn_on=(Button)findViewById(R.id.alarm_on);
turn_off=(Button)findViewById(R.id.alarm_off);
update_text=(TextView)findViewById(R.id.update_text);
alarm_manager=(AlarmManager)getSystemService(ALARM_SERVICE);
time_picker=(TimePicker)findViewById(R.id.timePicker);
final Calendar calendar=Calendar.getInstance();
final Intent my_intent=new Intent(this,AlarmReciever.class);
turn_on.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
update_text.setText("Alarm Turn On");
calendar.set(Calendar.HOUR_OF_DAY,time_picker.getCurrentHour());
pending_intent= PendingIntent.getBroadcast(AlarmClock.this,0,my_intent,PendingIntent.FLAG_UPDATE_CURRENT);
alarm_manager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pending_intent);
}
});
final RingtonPlayingService rington=new RingtonPlayingService();
turn_off.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
update_text.setText("Alarm Turn Off");
}
});
}}
AlarmReciverクラス:
public class AlarmReciever extends BroadcastReceiver {
AlarmClock alarmClock=new AlarmClock();
@Override
public void onReceive(Context context, Intent intent) {
Log.e("AlarmReciever","Alarm Reciever Error");
Intent intent_service=new Intent(context,RingtonPlayingService.class);
context.startService(intent_service);
}}
RingtonPlayingService:
public class RingtonPlayingService extends Service {
public static MediaPlayer mediaPlayer;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent,int flags , int startId) {
if(mediaPlayer==null)
{
mediaPlayer = MediaPlayer.create(this, R.raw.relax);
mediaPlayer.start();
}
return START_NOT_STICKY;
}
@Override
public boolean onUnbind(Intent intent) {
mediaPlayer.stop();
return super.onUnbind(intent);
}
@Override
public void onDestroy() {
Toast.makeText(this, "onDestroy is Called", Toast.LENGTH_SHORT).show();
mediaPlayer.stop();
}}
:あなたがサービスを停止したい場合は、次のコードを使用し
を? –
このコードを使用した後、音楽を開始するにはアプリを終了し、音楽を開始できない場合は –