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.

Что вы должны сделать:

Запуск WebView деятельности, используя флаги: Intent.FLAG_ACTIVITY_NEW_TASK и Intent.FLAG_ACTIVITY_MULTIPLE_TASK

Внутри этой деятельности называют getTaskId() и сделать идентификатор доступной для вашей основной деятельности. Если вы хотите, чтобы возобновить деятельность, выполните следующие действия:

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

Требуется разрешение permission android.Manifest.permission.REORDER_TASKS

Если вы хотите, чтобы вернуться к главной задаче из задачи WebView (который состоит из одной деятельности), сделать это :

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); 
Смежные вопросы