액티비티에서 알람매니저를 이용해 정해진 시간이 되면
브로드캐스트를 실행하는 예제 입니다.
그런데 브로드캐스트에서 인텐트한 액티비티가
전화 걸때, 끊을 때 다 동작을 합니다.
무슨 이유인지 모르겠습니다..
도와주십쇼..ㅠㅠ
TestSendReciverActivity.java-------
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(TestSendReciverActivity.this, AllActivity.class);
startActivity(i);
Calendar alarmCalender= Calendar.getInstance();
Random randomGenerator = new Random();
int start = 3;
int end = 5;
double range = end - start + 1;
int dd = alarmCalender.get(Calendar.DAY_OF_WEEK)+1;
if(dd == 8)
{
dd = 1;
}
int randomInt3to5 = (int)(randomGenerator.nextDouble() * range + start);
Log.e("3~5", Integer.toString(randomInt3to5));
int randomInteger = randomGenerator.nextInt(59);
Log.e("0~60", Integer.toString(randomInteger));
alarmCalender.set(Calendar.DAY_OF_WEEK, alarmCalender.get(Calendar.DAY_OF_WEEK));
//alarmCalender.set(Calendar.AM_PM, Calendar.PM);
alarmCalender.set(Calendar.HOUR_OF_DAY, 9);
alarmCalender.set(Calendar.MINUTE, 9);
alarmCalender.set(Calendar.SECOND,0);
alarmCalender.set(Calendar.MILLISECOND,0);
long A_Week_MILLISECOND_TIME = 24*60*60* 1000;
Intent intent = new Intent(TestSendReciverActivity.this, AllActivity.class);
intent.setAction("ACTION.RESTART.PersistentService");
PendingIntent sender = PendingIntent.getService( TestSendReciverActivity.this , 0 , intent , 0 );
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC, alarmCalender.getTimeInMillis(),
A_Week_MILLISECOND_TIME, sender);
// sendBroadcast(new Intent("arabiannight.tistory.com.sendreciver.gogogo"));
}
});
--------------------------------------------------
TestReceiver.java---------------------------
public void onReceive(final Context context, Intent intent) {
String action = intent.getAction();
Intent i = new Intent( context, AllActivity.class );
PendingIntent pi = PendingIntent.getActivity(context, 0, i, 0);
try {
pi.send();
} catch (CanceledException e) {
e.printStackTrace();
}
}
}
-----------------------------------------