从线程向主要活动显示吐司

时间:2014-03-08 01:29:11

标签: android multithreading service android-toast

我正在创建一个Android应用程序,其中我从主要活动A调用了服务C.从服务C我调用了一个扩展线程的B类实例。现在我需要从这个类B中为用户显示一条消息。我尝试使用Handler类,我使用的代码是

在课程B中扩展线程

Message status = someHandler.obtainMessage();
        Bundle data = new Bundle();
        data.putString("SOMETHING", "dist");
        status.setData(data);

        someHandler.sendMessage(status);

IN SERVICE C:

Handler someHandler = new Handler(){

     //this method will handle the calls from other threads.       
     public void handleMessage(Message msg) {

          Toast.makeText(getBaseContext(), msg.getData().getString("SOMETHING"),Toast.LENGTH_SHORT).show();
     }
};

现在,当我运行这个时,我期待在主UI活动A中显示一个toast。但是它无效。

1 个答案:

答案 0 :(得分:0)

它可能是上下文,取决于服务C的显示方式,getBaseContext()并不总是正确的。您可以尝试'this'或静态调用上下文。