Developer MJ Story

[Android/Intent] Broadcast Receiver(activity와 다른 class)에서 intent로 Activity call하기 본문

Software/Android

[Android/Intent] Broadcast Receiver(activity와 다른 class)에서 intent로 Activity call하기

집근처 2014. 6. 9. 14:26
반응형
  • 특정 Broadcast가 오면 어떤 activity. 음 그러니까 app을 call 하고 싶을 때가 있다. 예를 들면 이어폰을 꼽았을 때 Music app을 실행 한다던지, 문자가 도착했을 때 새로 개발한 app을 실행하고 싶을 때
  • 그런데, 그냥 startActivity(intent)로 했더니 startActivity is undefined 라는 납득하기 어려운 상황이 발생
  • 위 문제를 해결하기 위한 방법

 

    • Source Code

 publicclass FNReceiver extends BroadcastReceiver{

publicvoid onReceive(Context context, Intent intent) {

Intent TempIntent = new Intent(context, TargetActivity.class);

context.startActivity(TempIntent);


  

  • broadcast receiver class에서 context가 애매?해서 그런지 바로  startActivity가 안된다. 위의 소스코드와 같이 context를 설정해 주면 compile 가능
  • complie 해서 실행을 했더니, 예상치 못하게 해당 app이 종료 된다.(개발하면서 가장 짜증나는 상황이다.) 왜 그럴까  고민해봤다. 답은 간단했다. 해당 activity는 처음 실행되기 때문에 intent flags에 new task 설정을 해야함 - 'Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);'


반응형