gpt4 book ai didi

android - 将我的 Activity 带回顶部?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:38:09 24 4
gpt4 key购买 nike

这个问题是 How to close or stop an external app that I started in Android 中提出的建议的副产品.

我正在编写一个 Android 应用程序,它是一个工业过程的远程控制 - 该过程在与我的 Android 应用程序不断通信的 PC 上运行,有时 PC 会向 Android 发送一个 PDF 文件,然后我启动AdobeReader.apk 来显示它。当 PC 关闭图像时,我想在 Android 上关闭它。

在上面的链接中,有人告诉我,一旦启动 Adob​​eReader,就无法通过我的代码将其关闭。 但是 我也许可以将我的应用程序重新放在前面,这对我的目的来说同样好。但我一直没能让它发挥作用。我的应用程序的主要 Activity 是 RemoteControlActivity,我试过:

try {
Intent i = new Intent(ctx, RemoteControlActivity.class);
ctx.startActivity(i);
}
catch (ActivityNotFoundException e) {
Log.d("ShowButtons(normal)", "Hide");
}

我还尝试在 startActivity() 调用之前添加 intent.setFlags(...),并使用 Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | 的各种组合 Intent .FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_FROM_BACKGROUND 运气不好。

在 list 中,remoteControlActivity 的启动模式是singleTask

在调试器中,StartActivity() 被调用而没有进入 Catch 子句,但我没有在 RemoteControlActivity 的 onRestart 或 onResume 处理程序中遇到断点。

提前致谢!

编辑:下面的答案建议使用不同的标志,所以我试了一下:

try {
Intent i = new Intent(ctx, RemoteControlActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
ctx.startActivity(i);
}
catch (ActivityNotFoundException e) {
Log.d("ShowButtons(normal)", "Hide");
}

...但运气不好 - 在调试器中它调用 startActivity,没有进入 catch block ,但没有任何反应。

进一步编辑:有人要求我提供 list ;这是主要 Activity 的部分:

<activity android:launchMode="singleTask"
android:label="@string/app_name"
android:windowNoTitle="false"
android:configChanges="orientation"
android:screenOrientation="landscape"
android:name="RemoteControlActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

最佳答案

Flag Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT 仅在 Android 将 Activity 自身置于前端时由 Android 设置。自己设置没有任何作用。

标记 Intent.FLAG_FROM_BACKGROUND 不执行任何操作,它仅用于提供信息(表明 Activity 是由后台任务启动的)。

您需要设置 Intent.FLAG_ACTIVITY_NEW_TASK。来自 FLAG_ACTIVITY_NEW_TASK 的文档:

When using this flag, if a task is already running for the activity you are now starting, then a new activity will not be started; instead, the current task will simply be brought to the front of the screen with the state it was last in.

关于android - 将我的 Activity 带回顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453724/

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