Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android:为什么我们需要JobIntentService中的Runnable?_Java_Android - Fatal编程技术网

Java android:为什么我们需要JobIntentService中的Runnable?

Java android:为什么我们需要JobIntentService中的Runnable?,java,android,Java,Android,我正在使用JobIntentService,示例如下: @Override protected void onHandleWork(Intent intent) { ... toast("Executing"); ... } @Override public void onDestroy() { super.onDestroy(); toast("All work complete"); } final Hand

我正在使用
JobIntentService
,示例如下:

@Override
protected void onHandleWork(Intent intent) {
    ...
    toast("Executing");
    ...
}

@Override
public void onDestroy() {
    super.onDestroy();
    toast("All work complete");
}

final Handler mHandler = new Handler();

// Helper for showing tests
void toast(final CharSequence text) {
    mHandler.post(new Runnable() {
        @Override public void run() {
            Toast.makeText(JsInvokerJobService.this, text, Toast.LENGTH_SHORT).show();
        }
    });
}
我是Android新手,我不明白为什么他们会将
Toast.makeText
包装在
Runnable
中,而不是直接在
onHandleWork
onestroy
方法中使用它。Runnable的方法没有真正的帮助。这是否特定于
JobIntentService
?哪些内容应该进入
onHandleWork
方法,哪些内容应该卸载到
Runnable

我是Android新手,我不明白他们为什么要包装 Toast.makeText在可运行的

这是因为
JobIntentService
在后台线程上运行,并且不能从中显示Toast。处理程序将在ui线程的runloop队列中发布您的runnable,并在其上执行