[英]Android: Intent Extras not passed with startActivity() outside Activity context
我有一个类,它侦听SMS广播,然后在同一应用程序中打开一个活动以显示消息。 这是一个较大项目的一部分。
由于广播类不会扩展活动类,因此有意图地调用活动需要我用Intent.FLAG_ACTIVITY_NEW_TASK
对其进行Intent.FLAG_ACTIVITY_NEW_TASK
。
现在,Intent有一个额外的(SMS消息和一些参数作为单个字符串),我想与该Intent发送。 一切都进行得很好,但没有随心所欲地发送附加服务。
这是我的广播课代码
//After getting the message into String S and doing some process
Intent inte = new Intent(context.getApplicationContext(), StartApp.class);
inte.putExtra("messageAsString", S.toString()); //Where S is declared somewhere
inte.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(inte);
从活动中接收onCreate()方法中的Intent
if(getIntent().hasExtra("messageAsString")) {
String message = getIntent().getStringExtra("messageAsString").toString();
Toast toast = Toast.makeText(this, "Received SMS: " + message , Toast.LENGTH_LONG);
toast.show();
}
该应用程序可能已经运行,已按下主页按钮。 无论哪种方式,我想要实现的是当注册接收者收到消息时,我想自动开始一个活动并将消息及其元数据传递给它。
我知道我在某处缺少东西,但会感谢您的迅速帮助
您还需要处理onNewIntent()
,如果活动已经存在并且startActivity()
将现有实例带回前台,则可以调用onNewIntent()
。 您的多余物品可能在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.