시나리오 :이 알람은 다음, 동시에 설정 만 그들에게 보여 주어야한다시작 활동 브로드 캐스트 리시버에서 한 번만 사용하여 잠금 --Android
.
내 문제 :
나는 AlarmGoOffActivity을 의도 할 때의 시간을 전달하는 브로드 캐스트 리시버가 있습니다. 그러나 인 텐트를 전달하기 전에 AlarmGoOffActivity가 이미 실행되고 있는지 확인해야합니다. 내가 보았던 대답 중 하나에서. 나는이 접근법을 시도했다. 이전에는 두 경보가 모두 발사되었다. 지금, 어떤 경보도 발사되지 않습니다.
코드
MyBroadCastReceiver.java
if (AlarmGoOffActivity.running) {
BLog("AlarmActivity running");
} else {
BLog("AlarmActivity not running ");
//set this variable true so that new broadcasts are not entertained
AlarmGoOffActivity.running = true;
Intent intent1 = new Intent(context, AlarmGoOffActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent1.putExtra(DBHelper.COLUMN_ID, id);
String ext = extras.getString(DBHelper.TASK_TITLE);
if (ext != null) {
intent1.putExtra(DBHelper.TASK_TITLE, ext);
}
BLog("Starting alarm fire");
context.startActivity(intent1);
}
AlarmGoOffActivity.java
public class AlarmGoOffActivity extends ActionBarActivity {
public static boolean running = false;
.....
@Override
public void onDestroy() {
super.onDestroy();
//changing the lock to false here. So a new one can start from
//broadcastreceiver
running = false;
}
}
,
첫 번째 발사를 기대하고있었습니다. 자, 어느 누구도 발사하지 않습니다. 왜 이것이 작동하지 않습니까? 그것은 정적 변수 (내가 놓친 몇 가지 개념) 때문입니까? 아니면 방송 사이의 10 밀리 초 또는 그 미만의 시간 간격 때문입니까? 당신의 도움을 주셔서 감사합니다.