gpt4 book ai didi

android - 将 Activity 放回前台时 startActivitySync 挂起

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:28 28 4
gpt4 key购买 nike

我正在编写一个启动我的主要 Activity 的测试,之后,我通过使用以下 Intent 启动主屏幕将其置于后台:

    Intent intent= new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

之后,我尝试使用与上述类似的 Intent 将我的应用程序的 Activity 放回前台(它没有 CATEGORY_HOME 标志,而是添加 Activity 的名称和包)。由于我需要确保我的应用程序的 Activity 已成功启动,因此我使用了 Instrumentation 中的“startActivitySync”方法。

当我运行测试时,我看到该应用已成功进入后台,然后返回前台,但测试运行从未完成。它永远卡在“startActivitySync”方法中。知道为什么会这样吗?

最佳答案

根据我的经验:

public testOne(){
MyActivity first = startActivitySync(...);
first.finish();
MyActivity second = startActivitySync(...);
}

public testTwo(){
MyActivity first = startActivitySync(...);
...
}

, testOne() 会成功,
但是 testTwo() 会卡在“startActivitySync”上。

建议的修复:
在每次测试结束时清理您开始的 Activity ,例如:

public testOne(){
MyActivity first = startActivitySync(...);
first.finish();
MyActivity second = startActivitySync(...);
second.finish();
}

public testTwo(){
MyActivity first = startActivitySync(...);
first.finish();
}

关于android - 将 Activity 放回前台时 startActivitySync 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462758/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com