gpt4 book ai didi

用于启动设备上所有已安装应用程序的 Android 应用程序

转载 作者:行者123 更新时间:2023-11-30 04:15:47 26 4
gpt4 key购买 nike

我正在开发一个测试应用程序,它将在设备上一个接一个地连续启动每个应用程序。该应用程序主要用于通过上下文切换进行 UI 稳定性测试。我是 Android 的新手,并试图弄清楚方式。我将非常感谢任何建议

这就是我的应用应该做的:-

  1. 查询设备并获取设备上所有应用的列表
    包括系统应用
  2. 现在一个接一个地启动每个应用,直到设备上的所有应用都启动
  3. 一旦完成遍历列表一次,它就会从列表中的第一个应用重新开始

    让我调用我的应用程序 Launcher_app 并假设设备上有 5 个应用程序 A、B、C、D、E。Launcher 应用程序将依次启动 A、B、C、D、E,然后通过启动 A 再次启动.这将一直持续到用户手动存在启动器应用程序为止

我尝试实现该应用程序,但我对 android 系统如何允许这样的上下文切换有一些疑问。

这是一个自动启动每个应用程序的代码 fragment

公共(public) Runnable AutoLaunch = new Runnable() {

public void run()
{

while(AppIndex < mAppsList.getCount())
{


//get the app name using index AppIndex
//launch app using the appname
App app = (App) mAppsList.getItemAtPosition(AppIndex);
Intent i = getPackageManager().getLaunchIntentForPackage(app.getPackageName());
try
{
if (i != null)
{
startActivity(i);

}
else
{
i = new Intent(app.getPackageName());
startActivity(i);

}
for(int j=0;j<2000;j++)
for(int k=0;k<10000;k++)
continue;
finish();

}
catch (ActivityNotFoundException err)
{
//Toast.makeText(ListInstalledApps.this, "Error launching app", Toast.LENGTH_SHORT).show();
}

if(AppIndex == mAppsList.getCount()-1)
AppIndex = 0;
else
AppIndex++;

}

这是我的理解:-

Launcher 应用一开始将位于前台 (FG)。然后应用程序 A 来到 Forground n Launcher_app 将进入后台(BG)。现在应用程序 B 进入 FG,应用程序 A 与 Launcher 应用程序一起进入 BG。继续这种方式,有时应用 E 在 FG 中,而其余应用(包括 Launcher 应用)在 BG 中。

当我尝试使用上述实现运行应用程序时,我看到应用程序正在启动,但应用程序顺序是随机的,而且,我在设备启动时看不到任何应用程序,可能它发生得太快了....不是当然。我不想继续,直到我知道我在正确的轨道上

在下一次迭代的这种情况下,Launhcer 应用程序会按顺序恢复应用程序 A、B、C、D、E 还是会重新启动每个应用程序?如果系统在实际场景中需要内存,Launcher 应用程序也会被杀死设备上有将近 50 个应用程序在 BG 中运行。或者系统是否会让我的应用程序保持 Activity 状态,因为这是启动所有其他应用程序的主要应用程序。

请帮助我理解它是如何工作的,因为我真的很想知道这样的应用程序是否可行?解决上述问题的最佳方法是什么。将不胜感激任何类型的指示/建议。

谢谢迷你

最佳答案

这是什么:

for(int j=0;j<2000;j++)
for(int k=0;k<10000;k++)
continue;

如果你只是想引入延迟,你可以简单地睡一会儿或使用类似 postDelayed 的东西隔开电话。

我同意您的猜测,即应用程序只是启动得太快了。您实际上是同时启动所有这些,因此您会看到随机顺序(由于启动时间不同),有些甚至没有时间在另一个获得焦点之前显示其 UI。

修复你的延迟代码,其中大部分应该会好得多。

关于用于启动设备上所有已安装应用程序的 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10049403/

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