我可以在Android中显示来自非UI服务的Toast吗?

时间:2015-05-21 10:47:32

标签: android service toast

我有一个在后台工作的服务。

  

如何显示来自没有用户界面的服务的Toast短信?

没有活动,这是非UI服务。

有可能吗?

3 个答案:

答案 0 :(得分:1)

你当然可以这样做。服务是上下文。所以你可以打电话给

Toast.makeText(this, "My Information", Toast.LENGTH_SHORT).show();

答案 1 :(得分:0)

在后台主题中尝试此操作。

new Handler(Looper.getMainLooper()).post(new Runnable() {
       @Override
       public void run() {
             Toast.makeText(context, "Running background", Toast.LENGTH_SHORT).show();
            }
        });

答案 2 :(得分:0)

我通过使用应用程序类实例从虚拟类中显示它,基本上这意味着您可以在应用程序中的任何位置显示它(包括服务)。

public class DemosApplication extends Application {

    private static DemosApplication instance;
    private Toast toast;

    public static DemosApplication getInstance() {
        return instance;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        if (instance == null) {
            instance = this;
        }
    }

    public void showToast(int resID) {
        showToast(getString(resID));
    }

    public void showToast(String text) {
        if (toast != null) {
            toast.cancel();
        }

        toast = Toast.makeText(this, text, Toast.LENGTH_SHORT);
        toast.show();
    }
}

从任何地方使用

DemosApplication.getInstance().showToast("Lalalala");