有时 context.startActivity(intent) 在 Android 中扩展 WebSocketServer 的类中不起作用

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

我有一个扩展 WebSocketServer 的类并等待来自客户端应用程序的请求,如果消息到达,它应该运行一个活动。 下面的代码展示了它是如何工作的。请注意,运行以下代码的应用程序在后台运行,当前客户端应用程序具有屏幕。 如果来自客户端应用程序的第一个请求到达,所需的活动会正确运行并显示在屏幕上,但随后随着请求的到达,这种情况不会发生。 这段代码中使用的上下文没有问题,因为它第一次运行正确。 我接收消息也没有问题,因为消息是从客户端正确接收的。 你能帮我理解问题出在哪里吗?

注意:Android 11

public class WBServer extends WebSocketServer {

@Override
public void onMessage(WebSocket conn, String message) {

        Intent intent = new Intent(MyApplication.getInstance().context, ThirdPartyActivity.class);
        intent.putExtra("TransType", 1);
        intent.putExtra("Amount", String.valueOf(12000));
        intent.putExtra("ResNum", "1111111111111111111111111");
        intent.putExtra("AppId", "1");
        intent.putExtra("Timer",60_000);

        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        MyApplication.getInstance().context.startActivity(intent);

        conn.send("Text to client");
}
}

我们如何确保所需的活动始终运行?

java android android-context
1个回答
0
投票

如果您的 WBServer 在后台运行,则无法从 Android 11 中的后台服务启动 Activity,请参阅文档 https://developer.android.com/guide/components/activities/background-starts

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