마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

alarmmanager에서 PendingIntent사용때 문의 [closed]

0 추천

alarmmanager에 PendingIntent를 사용하여

	Intent intent = new Intent(ServiceClass.this,alarmReceiver.class);
		
		PendingIntent sender = PendingIntent.getActivity(mContext, alarmId, intent, PendingIntent.FLAG_CANCEL_CURRENT);
		mManager = (AlarmManager)getSystemService(ALARM_SERVICE);
		calendar.set(Calendar.HOUR_OF_DAY, h);
        calendar.set(Calendar.MINUTE, m);
        calendar.set(Calendar.SECOND, 0);
        
        mManager = (AlarmManager)getSystemService(ALARM_SERVICE);
		//알람 시간
        long oneday = 24 * 60 * 60 * 1000;// 24시간
        
        mManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), oneday, sender);

위와 같이 구성할 경우 해당 시간이 되면 alarmReceiver Activity가 실행이 됩니다.

제가 특정 Activity가 실행되고 있을 경우에만 alarmReceiver가 실행이 되도록 하고 싶은데 

그렇게 할수 있는 방법이 없을까요?

 

질문을 종료한 이유: 자답
쿠쿠부다스 (6,470 포인트) 님이 2017년 2월 28일 질문
쿠쿠부다스님이 2017년 3월 2일 closed
자답:
브로드캐스트로 넘겨서 체크를 하여 intent를 사용해서 액티비티 실행한 결과 정상작동

1개의 답변

0 추천
 
채택된 답변
쎄미 (162,410 포인트) 님이 2017년 2월 28일 답변
쿠쿠부다스님이 2017년 2월 28일 채택됨
궁금한 점이있어서 이렇게 글을 남깁니다.
매번 답변에 감사를 드립니다.
alarm manager를 통해 특정시간에 PendingIntent를 통해 alarmReceiver 액티비티가 실행이 됩니다.

그런데 특정 액티비티 예로 b.class가 있을경우 이 액티비티가 실행이 되지 않았을 경우에는 특정시간에 alarmReceiver이 실행되지 않도록 할려고 하는데요.

android check activity is running을 통해 mainactivity나 service에서 특정액이티비 동작을 체크한다고 하더라도. alarmmanager에서 세팅이 되면 PendingIntent로 지정된 alarmReceiver 액티비티가 발생되는게 아닌가요.

alarmReceiver 자체에서 만일 b 액티비티를 체크한다고 하고 finish하더라도 껏다켜지는 현상이 발생을 할것인데.. 아예 발생되지 않도록 차단할 방법이 없는가요? 아니면 제가 잘못 생각한 부분이 있는지 답변 부탁드립니다.
아니면 manifest를 사용하여 할 수 있는 방법이 있는가요??
B액티비티가 떠 있을 때는 onNewIntent 가 호출되도록 manifest에서 launchMode를 singleTask 인가로 바꾸면 됩니다.
...