繁体   English   中英

Android:未在Activity上下文外部通过startActivity()传递Intent Extras

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM