有时您必须向现有应用程序添加新活动/片段。此活动/片段可以嵌套,以便为了访问它,用户必须打开应用程序并在到达之前浏览UI的多个部分。
在开发这个新活动/片段时,每次进行更改时,我都必须重新编译整个应用程序,启动它并导航到显示新活动/片段的位置。这很乏味,也会减慢这个过程。
有没有办法直接启动当前正在开发的活动/片段?
附录:
许多人建议修改现有代码或清单,以便应用首先启动新活动/片段:
必须修改现有代码才是我想要避免的。这对我来说听起来不对。 所以我想我可以为此目的编写一个espresso测试,并直接从中启动活动/片段。问题是espresso仅在测试期间保持活动/片段,因此它在几分之一秒内可见,然后消失。
答案 0 :(得分:3)
由于@ Code-Apprentice的答案以及其他答案,我能够提出这个问题:JUnit - stop it from exiting on finish?。
@RunWith(AndroidJUnit4.class)
public class VanillaActivityTest {
@Rule
public final ActivityTestRule<VanillaActivity> activityTestRule =
new ActivityTestRule<>(VanillaActivity.class, false, false);
@Test
public void blockingTest() throws Exception {
Intent intent = new Intent();
// Add your own intent extras here if applicable.
activityTestRule.launchActivity(intent);
CountDownLatch countdown = new CountDownLatch(1);
countdown.await();
}
}
答案 1 :(得分:1)
执行此操作的最佳方法可能是编写检测测试。这样,您不仅可以启动所需的活动,还可以自动检查其行为方式。您可以使用Getting Started with Testing了解有关自动化测试的更多信息。
如果要启动手动测试活动,可以使用ActivityTestRule
constructor which has the launchActivity
flag。如果将此值设置为false,则可以完全控制活动何时启动以及何时完成。只需使用@Before
在launchActivity()
方法中手动启动它。
答案 2 :(得分:0)
您可以使用adb
在命令行上启动特定的活动。该过程将是:
adb shell am start -n com.company.MyApp/.SpecificActivity