Android가 처음인데 이에 대한 도움을 주시면 감사하겠습니다.AlarmManager를 사용하여 향후 특정 작업 수행
나중에 DatePicker
및 TimePicker
위젯으로 설정할 때 특정 시간에 내 BroadcastReceiver
클래스를 호출하도록 Alarm Manager를 사용하려고합니다.
그러나 해당 기능을 수행하려면 broadcastreceiver 클래스를 가져올 수 없습니다. 아래
내가 OS에서 브로드 캐스트 메시지를 수신하기 위해 브로드 캐스트 리시버 클래스의 매니페스트 파일에 넣어 코드입니다 :<receiver android:name="androidapp.scheduler.MyBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.MYBROADCASTRECEIVER" >
</action>
</intent-filter>
</receiver>
을 그리고 아래 난 그래서 내 다음 버튼의 OnClickListener를 넣어 한 코드는 운영 체제에 통화 시간을 알립니다.
TimePicker myTp = (TimePicker)findViewById(R.id.tpTime);
cal.set(Calendar.YEAR,myDatePicker.getYear());
cal.set(Calendar.MONTH, myDatePicker.getMonth());
cal.set(Calendar.DAY_OF_MONTH, myDatePicker.getDayOfMonth());
cal.set(Calendar.HOUR, myTp.getCurrentHour());
cal.set(Calendar.MINUTE, myTp.getCurrentMinute());
cal.set(Calendar.SECOND, 0);
Log.i("SCheduling", cal.getTime().toString());
Intent intent = new Intent(Scheduling.this, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(Scheduling.this, 234324243, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
Intent nextForm = new Intent(this,Sender.class);
nextForm.putExtra("contacts", contacts);
startActivity(nextForm);
Log.i("SCheduling", "everything set");
마지막으로, MybroadcastReceivers
클래스 코드는 다음과 같습니다 : 나는 여기에 무엇을 놓치고
public class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.i("brreceiver", "BroadcastReciever");
Toast.makeText(context, "schedule set!.",
Toast.LENGTH_LONG).show();
}
}
? 다음 문 변화에
나는 토스트가 컨텍스트로받는 것이 무엇인지 궁금합니다. 올바른 문맥입니까? 그 이유는 내가 날짜를 설정 한 후, 내 프로그램이 sender.class 인 다음 활동을로드한다는 것입니다. 그러나 토스트가 나타나지 않습니다? – user2031865
은 수신 된 브로드 캐스트입니다. OnReceive가 호출되는지 확인하려면 로그를 확인 했습니까? – prvn
예. 로그를 확인했지만 아무 것도 없었습니다. – user2031865