IT_Programming/Android_Java
[펌] 동일 Task로 앱 실행하기
JJun ™
2012. 10. 5. 22:23
출처: http://oic.tstore.co.kr/front/community/mentoring/viewMentoring.action?seq=101
[요약]
[설명]
외부(리시버, 상태창, 알람메니저 등)에서 내 앱을 실행하려 할때 기존에 실행되고 있는 Task가 존재하면 기존 Task가 호출되고 이전에 실행된 적이 없으면 새로 실행하는 형태로 앱을 실행하고 할 때 다음 방식으로 앱을 호출하면 됩니다.
아래와 같은 방식으로 앱을 호출하면 새로운 Task로 앱이 호출되지 않고 기존에 존재하는 Task가 노출됩니다. 이것은 이전에 앱이 실행되어서 여러단계의 액티비티가 실행된 상태라면 그 실행 상태 그대로 다시 노출 된다는 뜻입니다.
당연히 이전에 실행된 적이 없다면 main 액티비티부터 실행되어집니다.
[코드]
ComponentName component = new ComponentName("your.app.main.packagename", "your.app.main.packagename.mainactivity"); Intent intent = new Intent("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY |Intent.FLAG_ACTIVITY_NEW_TASK);//0x10100000); intent.setComponent(component); startActivity(intent); |
또는 팬딩 인텐트로 처리할 경우
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, 0); |
* 이 호출 방식은 menu에서 런처 아이콘을 클릭했을 때와 동일한 방식입니다.