2013-03-26 54 views
3
if (messages.length > -1) { 
         int duration = Toast.LENGTH_SHORT; 
         Toast toast = Toast.makeText(context, "Message recieved: " + messages[0].getOriginatingAddress(), duration); 
         toast.show(); 
         String value = "Message recieved: " + messages[0].getOriginatingAddress(); 

我的代码在这里得到一个短信。我想把它带回我的主要活动,但我CANT使用我的意图,并重新启动该活动(广播接收器是一个后台服务,人们将在此期间使用该应用程序。),而不是烘烤如何传递该字符串回活动(我只有一个主要的)。如何从广播接收器发回信息而不重新启动它

回答

1

如果您希望您的活动仅是在前台的时候,只是把从SMS广播接收新的广播,并在您的活动主持的广播接收器拦截它发出通知。

另一方面,如果您想要检查活动是否回到前台时是否发送了广播,即使活动在后台时收到了短信,您仍可以使用广播接收器,但您需要添加一个可以在之后收到的sticky intent

再加上:使用local broadcast receiver为了节省资源。

+0

我同意,但这里是问题...我的主要活动是一个手机差距的应用程序。 b ..我想运行后台进程,即使应用程序不是在前台..我只是想通过它回到我的主要活动,所以它可以传递到我的HTML在后台 – Dnaso 2013-03-26 22:22:09

+0

我与同样的问题像你Dnaso:/,如果你能处理这个问题,请发表你的回答,或者我在解决问题时做。 :) – gvsrepins 2015-03-17 22:16:35

+0

这个实际工作,请参阅本参考: https://sites.google.com/site/zainozzaini/android/receive-sms-using-android-broadcastreceiver-inside-an-activity – gvsrepins 2015-03-17 23:58:17