在广播接收器上祝酒

时间:2014-04-07 12:28:35

标签: android broadcastreceiver android-toast

我有一个接收器,在发送短信时被调用。 当发生这种情况时,我想表示祝酒。我知道从接收器显示吐司不是一个好习惯,但我想知道为什么我的代码不起作用

public class SmsSentReceiver extends BroadcastReceiver
{

  @Override
  public void onReceive(Context context, Intent intent)
  {
    if (getResultCode() == Activity.RESULT_OK)
      Toast.makeText(context, R.string.sent, Toast.LENGTH_SHORT).show();
    else
      Toast.makeText(context, R.string.error_sending_sms, Toast.LENGTH_LONG).show();
    context.unregisterReceiver(this);
  }

}

接收器正确接收事件,但它没有显示任何祝酒词。 相反,如果我在调试模式下运行应用程序,其中一个toasts会正确显示。

提前谢谢。

3 个答案:

答案 0 :(得分:2)

试试这个

new Handler(Looper.getMainLooper()).post(new Runnable()
{
    @Override
    public void run()
    {
         Toast.makeText(context, R.string.sent, Toast.LENGTH_SHORT).show();
    }
});

答案 1 :(得分:0)

尝试以下

  public class SmsSentReceiver extends BroadcastReceiver
 {
  @Override
  public void onReceive(Context context, Intent intent)
  {
    if (getResultCode() == Activity.RESULT_OK)
      Toast.makeText(getApplicationContext(), R.string.sent, Toast.LENGTH_SHORT).show();
    else
      Toast.makeText(getApplicationContext(), R.string.error_sending_sms, Toast.LENGTH_LONG).show();
    context.unregisterReceiver(this);
  }

}

希望这可以帮助你...

答案 2 :(得分:0)

试试这个:

Context c;
...
...
....

Toast.makeText(c,"Succesfully Written",Toast.LENGTH_SHORT).show();