(Android)使用startActivity(intent)从服务调用activity第一次被调用,但第二次运行失败

问题描述 投票:0回答:1

我有一个从服务调用的活动,我正在使用 startActivity(intent) 来实现它,当我第一次触发它时它工作正常,活动正确启动。但是,如果我按下 Android 设备上的主页按钮,然后再次尝试从服务运行该活动,活动将不会运行。

当尝试第二次运行它时,它会触发“onDestroy”事件,但之后不会启动该活动。

下面是我的活动启动代码 -

`Intent intent = new Intent(this, MyActivity.class);
 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("type", "LAUNCH");
intent.putExtra("title", "some value");
intent.putExtra("body", "some value");
intent.putExtra("data", "some value");

startActivity(intent);`

下面是来自

AndroidManifest.xml
文件的我的活动片段 -

<activity
android:name=".MyActivity"

            android:launchMode="singleTask"
            android:taskAffinity=""
            android:excludeFromRecents="true"
    
            android:screenOrientation="portrait"
            android:foregroundServiceType="phoneCall"
            android:showOnLockScreen="true"
            android:showWhenLocked="true"
            android:turnScreenOn="true"
            android:directBootAware="true"
            android:enabled="true"
            android:exported="false"
            android:supportsPictureInPicture="true"
            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboardHidden" />

logcat 中没有错误。尝试了很多flag组合和启动模式,还是没用。

android android-intent android-activity service android-service
1个回答
0
投票

因为你在后台。 现在对此有限制。 请参阅 https://developer.android.com/guide/components/activities/background-starts 了解在后台可以执行的操作以及启动 Activity 时的限制。

© www.soinside.com 2019 - 2024. All rights reserved.