출처: 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에서 런처 아이콘을 클릭했을 때와 동일한 방식입니다.
'IT_Programming > Android_Java' 카테고리의 다른 글
ContentProvider로 ExpandableList 구현 예제 (CursorTreeAdapter 사용) (0) | 2012.10.28 |
---|---|
[펌] AndroidManifest 에 있는 Debuggable 항목 값 읽어오기 (0) | 2012.10.05 |
[펌] 간단히 다중 위젯의 인스턴스 확보하기 (0) | 2012.10.05 |
[펌] 잠자는 앱을 깨우자. (FLAG_INCLUDE_STOPPED_PACKAGES) (0) | 2012.10.05 |
[펌] ViewPager에 적용되는 Fragment View 재사용하기 (ViewHolder 적용) (0) | 2012.10.05 |