gpt4 book ai didi

Android broadcastreceiver 创建新实例

转载 作者:行者123 更新时间:2023-11-29 16:13:10 27 4
gpt4 key购买 nike

好吧,我有一个扩展广播接收器的类,它正在监听消息。现在,每当它收到一条消息时,我都会创建一个新的应用程序实例。所以当我关闭它时,我必须点击返回按钮 2 次。

public class SMSReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Bundle myBundle = intent.getExtras();
SmsMessage [] messages = null;
String strMessage = "";
String phoneNumber = "";

if (myBundle != null) {
Object [] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];

for (int i = 0; i < messages.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
strMessage += "SMS From: " + messages[i].getOriginatingAddress();
strMessage += " : ";
strMessage += messages[i].getMessageBody();
strMessage += "\n";

phoneNumber = messages[i].getDisplayOriginatingAddress();
}

if (phoneNumber.equals("T-Mobile")) {
Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show();
abortBroadcast();
}

}
}
}

最佳答案

首先,我真的不认为它正在创建您的应用程序的新实例。更有可能发生的是将 Activity 带到前台。我认为您应该查看 list 或将其发布,以便我们了解广播是如何被引导的。可能是广播的目标也有启动 Activity 的效果。所以检查 list ,广播接收器中没有任何东西会导致这种情况。话虽如此,这真的取决于 Android 操作系统什么时候显示什么。但就两种情况而言。那只是没有发生。

附言。我不知道确切的原因,但我会说可能不会从广播接收器发出 Toast,而是使用 startActivity() 与 Activity 通信。

关于Android broadcastreceiver 创建新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11476497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com