如何从Android 11服务启动Activity

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

如何从我的服务在后台打开活动?

应用程序在后台运行,并且 Intent Brodcast 会触发我的应用程序中活动的启动。

我在 Android 8.1 设备上尝试过,它工作正常,但在 Andrid 11 设备上它无法工作。


 public void StartRead(){
        Intent i = new Intent(this, TestActivity.class);
        startActivity(i);
    }

private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
             if(intent.getAction().equals(VariableStorage.getInstance().BRODCAST_READ)){
                 //Start RFID Activity
                    StartRead();
            }else if(intent.getAction().equals(VariableStorage.getInstance().BRODCAST_DECODEVDA)){
                //Decode VDA55
             }
        }
    };

AndroidManifest.xml:

 <activity
            android:name=".TestActivity"
            android:exported="true"
            android:enabled="true"/>

我的服务是一个普通的ForegroundService。

android android-intent android-activity android-service android-11
2个回答
1
投票

如何从我的服务在后台打开活动?

你不能。

原因和您的选择在文档中进行了解释:


0
投票

Android 10(API 级别 29)及更高版本对应用程序在后台运行时启动活动的时间进行限制。

根据android文档你不能这样做。

了解更多

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