如何在 WorkManager doWork() 中显示 toast

Nur*_*lov 5 android-toast android-workmanager

如何在 WorkManager 中显示 toast do work()?

当我尝试时,它会抛出

Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Run Code Online (Sandbox Code Playgroud)

Pra*_*ani 12

您可以创建处理程序以在 UI 线程上显示 Toast。

您的doWork方法将类似于:

@NonNull
@Override
public Result doWork() {
    Log.d(TAG, "doWork for Sync");

    Handler handler = new Handler(Looper.getMainLooper());
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            // Run your task here
            Toast.makeText(mContext, "Testing", Toast.LENGTH_SHORT).show();
        }
    }, 1000 );

    return Result.success();
}
Run Code Online (Sandbox Code Playgroud)

注意:mContext将在构造函数中可用。

希望它会帮助你。谢谢你。

  • @NurseyitTursunkulov 无论如何,上下文都可以通过“getApplicationContext()”在工作人员内部使用,因此无论亲和力如何它都可以工作。 (2认同)