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