2014-02-13 4 views
1

내 Android 앱에 동일한 활동의 ​​열린 인스턴스 목록이 있습니다 (이 활동에는 기본적으로 WebView이 포함되어 있습니다). 사용자가 목록의 항목을 클릭하면 해당 활동을 다시 시작하려고합니다. 정확한 웹 사이트를 보여주는 활동에 따르면. 그러나 플래그가 Intent.FLAG_ACTIVITY_SINGLE_TOP 또는 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT 인 인 텐트를 사용하면 활동이 동일하므로 (다른 추가 기능이있는 다른 인스턴스 만) 트릭을 수행하지 않습니다.Android : 활동의 특정 인스턴스를 다시 시작하십시오.

다른 이름으로 동일한 활동을 여러 개 (예 : 10 개) 사용해야 만한다고 생각합니다. 각 웹 사이트는 자체 활동으로 시작됩니다. 그러나 10 개 이상의 웹 사이트를 열려고 할 때 다시 문제가 발생합니다.

다른 방법으로이 문제를 해결하는 방법은 무엇입니까?

답변

1

이 문제를 해결하려면 Android Tasks을 신뢰할 수 있습니다.

당신이해야 할 무엇 :

시작 웹보기 활동에 사용 플래그 : 이러한 활동 내부 Intent.FLAG_ACTIVITY_NEW_TASKIntent.FLAG_ACTIVITY_MULTIPLE_TASK

getTaskId()를 호출하고 주요 활동에 사용할 수있는 ID를 확인합니다. 당신이 활동을 재개하려는 경우, 다음을 수행하십시오

ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE); 
am.moveTaskToFront(taskId, 0); 

당신이 (하나의 활동으로 구성)는 웹보기 작업에서 기본 작업에 반환 할 수있는 권한 permission android.Manifest.permission.REORDER_TASKS 필요합니다, 이렇게 :

Context context = getApplicationContext(); 
String packageName = context.getPackageName(); 
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(packageName); 
launchIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
context.startActivity(launchIntent); 
관련 문제