android - 根据通知恢复后台 Activity

标签 android android-intent background push-notification android-service

我在这里阅读了一些答案,我认为我已经拥有实现结果所需的东西,但我需要一些帮助。

我的应用程序在特定条件下启动通知,我需要我的应用程序表现如下:

  • 如果我的主要 Activity 有一个实例在后台运行,我需要将其转到前台(我在网站上找到了这个:intent.setFlags(FLAG_ACTIVITY_REORDER_TO_FRONT);,所以我认为这一点已经解决了;

  • 如果应用程序没有任何 Activity 在后台运行,我需要从头开始启动应用程序(这可以通过启动应用程序的启动器 Activity 来实现。);

    <

我的问题是:如何让应用程序搜索在后台运行的任何自身实例?因为我需要用 Intent 标志重新排序到前面的 Activity 与启动器 Activity 不同。

通知由定期检查来自互联网的一些信息的服务处理。

感谢您的帮助。

最佳答案

您需要的只是一个决定要做什么的简单 Activity。这是一个例子:

public class NotificationActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Check if the app was already running
        if (isTaskRoot()) {
            // App wasn't running, so start the app from the beginning
            Intent startIntent = new Intent(this, MyStartingActivity.class);
            startActivity(startIntent);
        } else {
            // App was already running, bring MainActivity to the top
            Intent reorderIntent = new Intent(this, MainActivity.class);
            reorderIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            startActivity(reorderIntent);
        }
        // We are done now so just finish
        finish();
    }
}

设置开始此 Activity 的通知。确保在 list 中此 Activity 的任务亲和性与应用程序中其他 Activity 的任务亲和性相同(默认情况下,如果您没有显式设置android:taskAffinity) .

关于android - 根据通知恢复后台 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34288301/

相关文章:

android - 使用 Android 的 Intents 在 Waze 中开始导航

java - Intent putExtra 持续存在

CSS解密背景速记

ios - 在 applicationDidEnterBackground 之前显示 View 或启动画面(以避免事件 View 屏幕截图)

android - 如何以编程方式向各种移动应用商店提交、发布和升级应用程序?

android - 分块流式传输不符合预期 Retrofit+RxJava

java - 如何在打开下一个 Activity 之前关闭旧 Activity ?

android - 使用 Intent 在 Activity 之间传递数据

java - libGDX - 通过拖动鼠标滚动背景

java - 无法从 ListView 通过 Intent 正确传递数据