【问题标题】:How to get which activity is running android studio如何获取正在运行的活动 android studio
【发布时间】:2018-12-26 09:46:09
【问题描述】:

我正在尝试检查程序的流程,为此我需要一种方法来获取当前正在运行的类的类型。

我尝试在网上搜索有关该主题的一些信息,但正如我所见,大多数示例都为活动数据添加了一个静态变量。

除了测试我的程序的逻辑之外,我还想测试GUI,这样我就可以在按下按钮后检查正确的活动是否正在运行。

没有太多关于在 Android Studio 上进行测试的信息,因此非常感谢任何帮助(例如“你走错了路,你可以通过...测试你的 GUI...” )

谢谢

【问题讨论】:

  • 您可以使用“当前活动”应用程序,它在 Play 商店中提供。它将显示当前活动类的名称。这是链接play.google.com/store/apps/…
  • dumpsys活动活动| grep mFocusedActivity
  • 您可以在 Android Studio 中使用 Log 类调试您的应用。在这里您可以看到调用了哪些函数以及打开了哪些活动,如果您已正确完成日志
  • @Arjun 我可以使用当前的活动应用程序让课程穿上自动化测试服吗?我想构建一个测试框架来自动运行所有的测试。
  • @AssetBekbossynov 谢谢,如果所有其他选项都失败了,我会试试这个,我试图让它尽可能干净,这样我在测试时测试记录器的状态我的程序流程

标签: android android-studio testing


【解决方案1】:

这种方法可以使用Application.ActivityLifecycleCallbacks 接口。

第一步是在您的 Application 类中实现 Application.ActivityLifecycleCallbacks。

class MyApplication extends Application implements Application.ActivityLifecycleCallbacks {...}

第二步就是在 MyApplication.class 的 onCreate 方法中注册 Application.ActivityLifecycleCallbacks 回调

 @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(this);
    }

最后一步只是覆盖 MyApplication 类中 Application.ActivityLifecycleCallbacks 中的方法

void onActivityCreated(Activity var1, Bundle var2);

void onActivityStarted(Activity var1);

void onActivityResumed(Activity var1);

void onActivityPaused(Activity var1);

void onActivityStopped(Activity var1);

void onActivitySaveInstanceState(Activity var1, Bundle var2);

void onActivityDestroyed(Activity var1);

现在您可以轻松了解当前正在运行的活动 :) 编码愉快!

【讨论】:

  • 我非常感谢您的详细回答,现在在这些方法中我应该记录事件并使用正则表达式检查记录器吗?有没有办法获取当前正在运行的活动类?在活动记录了相关数据之后,我应该扫描记录器吗?
  • 这些方法直接返回活动类本身。我真的不明白你的意思是什么?您可以使用这些方法记录或创建逻辑或任何您想要的内容。
猜你喜欢
  • 1970-01-01
  • 2016-10-21
  • 2015-11-26
  • 1970-01-01
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多