我有一个从服务调用的活动,我正在使用 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组合和启动模式,还是没用。
因为你在后台。 现在对此有限制。 请参阅 https://developer.android.com/guide/components/activities/background-starts 了解在后台可以执行的操作以及启动 Activity 时的限制。