我有一个在后台工作的服务。
如何显示来自没有用户界面的服务的Toast短信?
没有活动,这是非UI服务。
有可能吗?
答案 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");