Android检查本机活动是否已开始

时间:2014-12-06 10:24:23

标签: android unit-testing android-instrumentation

我正在尝试测试我的应用程序是否已正确启动Android Dialer应用程序。

基于我所发现的单元测试和仪器,我创建了这个测试:

public void testPerformOperation() throws Exception {
    Instrumentation.ActivityMonitor monitor = getInstrumentation().addMonitor("com.android.phone.Dialer", null, true);
    operationPerformer.performOperation("tel:111222333");
    Activity activity = monitor.waitForActivityWithTimeout(5000);
    assertNotNull(activity);
}

但是这总是会返回AssertionFailedError。

我还尝试将addMonitor()的第一个参数设置为IntentFilter.create(Intent.ACTION_DIAL, "vnd.android.cursor.dir/calls"),但这给了我同样的错误。此外,我一直在寻找其他MimeTypes使用,但没有找到任何(看起来像拨号器使用没有MimeType)。

我应该如何检查拨号器是否已启动?

1 个答案:

答案 0 :(得分:0)

检查您的活动是否正在运行

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        for (RunningServiceInfo act: manager
                .getRunningServices(Integer.MAX_VALUE)) {
            if (MyActivity.class.getName().equals(
                    act.service.getClassName())) {

                //do
                return true;
            }
        }