2011-02-03 2 views
5

임명하기에 어려움을 겪고 있습니다. 여기 아이디어에 대한 간략한 개요가 나와 있습니다.Android 인 텐트를 통해 다른 응용 프로그램을 시작하거나 가져 오기

우선, 나는이 배후의 논리를 바꿀 수 없다. 고객의 특정 요구 사항이었다. AnyCut과 같은 도구를 사용하면 바이 패스 될 수 있지만 실제로는 그렇지 않다는 것을 알게되었다.

내 고객이 제공하는 제품군은 스위트에 속하는 모든 응용 프로그램이 "대시 보드 앱"에서 실행되므로 모든 런치 앱에 대시 보드 앱이 표시된다는 것입니다.

아이디어를 얻으려면 두 개의 앱을 사용할 수 있습니다. 대시 보드 앱 (A) 및 수신 앱 (B).

앱 B에 인 텐트 필터를 설정하고 싶습니다 (내가 생각하기에). 그래서 앱 A에 들어가서 앱 B 아이콘을 클릭하면 앱이 실행되거나 시작되는 위치에서 시작됩니다.).

이것도 가능합니까? 그렇다면 어떻게 할 수 있습니까? 나는 특별히 사용하는 응용 프로그램에서 하나 개의 활동을 시작하여 출시 할 수있었습니다 :

Intent i = new Intent(); 
i.setClassName("PACKAGE_NAME","SPECIFIC_CLASS"); 
startActivity(i); 

그러나 밤은 항상 같은 자리에 응용 프로그램 B를 시작으로 내가 원하는 행동. 사전에

고맙습니다, 스테파노

편집 : 몇 가지 새로운 정보가 추가되었습니다. DDMS에 대해 살펴 보았습니다.

기본 안드로이드 실행기를 통해 처음부터 응용 프로그램을 시작한 경우 홈 버튼을 누른 상태로두고 응용 프로그램을 맨 앞으로 가져올 때와 완전히 동일합니다. 그래서 지금까지이 목적을 재현해라.

INFO/ActivityManager(1292): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.package/.uiPackage.Activity} 

이것은 AnyCut가

Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=com.example.package/.uiPackage.Activity bnds=[125,242][235,360]} 

나는 똑같은 의도 것을 만드는 방법에 대해 갈 수있는 방법을 어떤 생각을합니까 어떻게? Intent API에서 해당 플래그를 찾을 수 없다.

답변

6

내 생각에이 방법을 사용했습니다.

Intent i = new Intent(); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.setAction("android.intent.action.VIEW"); 
i.setComponent(ComponentName.unflattenFromString("com.example.package/com.example.package.activityName")); 
startActivity(i); 
+0

이것은 흥미 롭습니다. 이 기능을 사용하면 기본 응용 프로그램 (대시 보드)에서 실행 된 보조 응용 프로그램에서 중단 한 부분으로 되돌아 갈 수 있습니까? 그렇다면 이것은 좋은 물건입니다! – ice911

+0

@ ice911 그것은 당신이 묘사하는 것을 정확히 말합니다. 안드로이드가 그 상태에있는 앱을 끌어 올리는 것처럼 보입니다. 필자는 에뮬레이터, 넥서스 1, 갤럭시 탭에서이 점을 테스트했으며 모든 점에서 작동합니다. 참조하는'activityName' im은 Manifest에서 main으로 표시된 것입니다. – blindstuff

+0

놀라운. 매력처럼 작동합니다. –

0

내가보고 싶은 예상되는 결과를 다음하지만 대시 보드에서 응용 프로그램을 실행하고 선택한 앱 실행 떠나는 활동 스택에서 대시 보드를 제거 할 다음있어 아주 확실하지 않다 :

Intent i = new Intent(); 
i.setClassName("PACKAGE_NAME","SPECIFIC_CLASS"); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 

다른 앱을 시작한 것처럼 앱을 시작해야한다고 생각합니다.

귀하가 찾고자하는 것이 아닌 경우 귀하의 논리에 대한 정보를 추가하십시오.

+0

미안하다. 내가 열어보고 싶은 클래스를 지정하지 않고 오히려 방금 중단 한 활동에서 다른 앱을 호출한다. – blindstuff

+0

나는 사용자가 응용 프로그램을 사용할 수 있기를 바랍니다. 예를 들어 집에 클릭 한 다음 대시 보드로 돌아가서 응용 프로그램을 계속 사용하십시오. – blindstuff

+1

'오히려 방금 그만 둔 활동에서 다른 앱을 호출합니다. '안드로이드가 실제로 작동하는 방식이 아닙니다. – Falmarri

0

는 당신이 활동을 전환 할 때 안드로이드의 기본 동작이 일시 정지의 정렬하거나 사용자가 마지막에 왼쪽 상태에서 활동을 유지하는 것이라고 생각합니다. 나는 활동을 전환 할 때 국가가 구원받지 못하도록하는 방법이 있지만 내 머리 꼭대기에서 그것을 기억할 수는 없다는 것을 알고 있습니다.

관련 문제