6
我有一個應用程序,它由下一個方法是啓動瀏覽器:如何捕捉瀏覽器活動?
Uri uri = Uri.parse(getURL());
Context context = widget.getContext();
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
context.startActivity(intent);
我有,我想趕上那活性的另一種AndroidJUnit項目。
通過接下來的步驟,我可以捕獲運行瀏覽器的MYProjectActivity,但我無法捕獲瀏覽器。
Instrumentation instrumentation = getInstrumentation();
// Register we are interested in the authentication activiry...
Instrumentation.ActivityMonitor monitor = instrumentation.addMonitor(MYProjectActivity.class.getName(), null, false);
// Start the authentication activity as the first activity...
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName(instrumentation.getTargetContext(), MYProjectActivity.class.getName());
instrumentation.startActivitySync(intent);
// Wait for it to start...
Activity currentActivity = getInstrumentation().waitForMonitorWithTimeout(monitor, 5);
有沒有人知道如何做到這一點?
我嘗試通過將IntentFilter而不是類傳遞給addMonitor()方法,並在IntentFilter中使用Intent.ACTION_VIEW來嘗試捕獲瀏覽器的ActivityMonitor。它在我的代碼中沒有工作,但我認爲這是由其他問題引起的,所以它可能適用於您。 – 2012-02-03 13:28:07
Jan,感謝您的回答<但我應該補充說明,此活動監視器僅適用於startActivitySync方法。在我的應用程序中使用startActivity - 對於這種方法它不起作用。 – 2012-02-07 16:57:21