BOOT_COMPLETED 를 받고 얼람 시간을 세팅하고 다음 실행될 액티비티를 부르는
클래스(액티비티)내에서는 If와 같은 조건문은 쓸 수가 없나요? (아래 소스 참조)
조건문을 처음부분, 중간부분 어느곳에 넣어도 에러(중지)가 뜹니다.
컴파일 까지는 잘 되며 그냥 수행시도 이상 없습니다. 단지 휴대폰을 리부팅 시키면
이 프로그램이 부팅후 첫 실행시 정지해 버립니다. 조건문을 빼면 아무런 이상이
없이 잘 동작합니다.
초보 실력으론 이해 되질 않네요. 도움이 필요합니다. ~~ 도와주세요... 초보올림.
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intnt;
PendingIntent sender;
intnt = new Intent(KalarmSet.this, AlarmReceiver.class);
sender = PendingIntent.getBroadcast(KalarmSet.this, 0, intnt, 0);
am.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime(), 600000, sender);
상기코드 앞에서
Intent intnt = getIntent();
String bb = intnt.toString();
바로 이 부분, Intent intnt = getIntent();
이 라인이 들어가면 문제가 되네요.
intent 의 내부를 보려면 어찌해야 에러를 만들지 않을까요??
맨처음 폰이 부팅완료하면 다음 을 수행
public class BootReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent intnt = new Intent(context, KalarmSet.class);
intnt.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intnt);
}
}
다음에 위에서 불려진 액티비티 KalarmSet 입니다.
public class KalarmSet extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.k_aview);
TextView txt =(TextView)findViewById(R.id.aw);
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intnt;
PendingIntent sender;
intnt = getIntent();
String bb = intnt.toString();
String cc = bb.substring(85,88);
String lz = String.valueOf(100);
String lx = String.valueOf(102);
if (cc.equals(lz)){
intnt = new Intent(KalarmSet.this, AlarmReceiver.class);
sender = PendingIntent.getBroadcast(KalarmSet.this, 0, intnt, 0);
am.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime(), 10000, sender);
}
else if(cc.equals(lx)) {
intnt = new Intent(KalarmSet.this, Kentry.class);
// sender = PendingIntent.getBroadcast(KalarmSet.this, 0, intnt, 0);
// Intent intent = new Intent(KalarmSet.this, Kentry.class);
startActivity(intnt);
}
else{
txt.setText(bb + "\n" + cc+ "\n" + lz+ "\n" + lx);
} //finish();
}
}
이 후단은 문제가 없습니다.
위 KalarmSet에서 다른부분 다 빼고 아래만 수행시켜도 전체적으로 노프러블럼입니다.
intnt = new Intent(KalarmSet.this, AlarmReceiver.class);
sender = PendingIntent.getBroadcast(KalarmSet.this, 0, intnt, 0);
am.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime(), 10000, sender);
인텐트의 내부를 보고 이 KalarmSet 을 부른 액티비티가 누군지를 파악하여 그에따라 각기 다른 액티비티를 부를려고 합니다.
근데 여기서 에러 생기니까 분기가 안됩니다. 폰을 리스타트 시키지 않으면 괜찮지요....
어찌 풀어야 할찌요???
CatLog에는 빨간 글씨로 ERROR Thread Attach failed 라는 에러만 보이네요.



