각각의 알람ID를 다르게 하여 진행중에 있습니다.
해당시간이 되면 알람이 울리는데요.
private void setAlarm(int alarmId,int h,int m){
Intent intent = new Intent(ServiceClass.this,NotiBroadcast.class);
PendingIntent sender = PendingIntent.getBroadcast(mContext, alarmId, intent, PendingIntent.FLAG_CANCEL_CURRENT);
mManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, h);
calendar.set(Calendar.MINUTE, m);
calendar.set(Calendar.SECOND, 0);
Log.e(TAG, "추가전: "+alarmId +"|| 알람 설정 시간 : " + calendar.getTime().toString());
if(calendar.before(Calendar.getInstance())){
calendar.add(Calendar.DATE, 1);
}
mManager = (AlarmManager)getSystemService(ALARM_SERVICE);
//알람 시간
long oneday = 24 * 60 * 60 * 1000;// 24시간
mManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), oneday, sender);
Log.e(TAG, "해당 알람번호 : "+alarmId +"|| 알람 설정 시간 : " + calendar.getTime().toString());
}
해당시간이되면 INENT를 통해 NotiBroadcast 브로드캐스트가 실행이 됩니다.
이후 INTENT로 아래와 같이 Intent를 통해서 alarmreceiver가 실행이 되게 했습니다.
그런데 알람1로 인하여 alarmreceiver.activity가 실행이 된 상태에서
알람2가 울려서 NotiBroadcast로 들어와서 로그캣에 앱동작// 블루투스 연결X까지는 들어오는데
intent가 실행이 되지 않습니다.
public class NotiBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(SharedPreferenceUtil.getSharedPreference(context, "alarm_state") !=null && SharedPreferenceUtil.getSharedPreference(context , "alarm_state").equals("on")){
if(BluetoothService.check_mState!=3){ //연결 안되었을때
Log.d("NotiBroadcast()","앱 동작O//블루투스 연결 X");
Intent i = new Intent(context, alarmReceiver.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(i);
}else{
Log.d("NotiBroadcast()","앱 동작O//블루투스 연결 O");
}
}else{
Log.d("NotiBroadcast()","노티피케이션이 켜져있지 않을 경우 ");
}
}
}
alarmreceiver의 매니페스트
<activity android:name="alarmReceiver"
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
</activity>
notibroadcast의 매니페스트
<receiver
android:name=".NotiBroadcast"
android:exported="false" >
</receiver>
기존 진행중인 동일한 액티비티가 있으면 Intent 플래그로 될거같았는데 동작이 먹히지가 않네요..
도움 부탁드립니다.