我在Android上尝试一些新东西,我需要访问UI线程的处理程序.
我知道以下内容:
我希望我的服务必须获取UI线程处理程序并将消息放入此处理程序.这样就可以处理此消息并将其发布到UI.这里的服务将是一个正常的服务,将由一些应用程序启动.
我想知道这是否可行.如果是这样,请建议一些代码片段,以便我可以尝试.
关心Girish
在我的应用程序中,在MainActivity中,有一个工作正常的线程.但是,当我调用另一个类从服务器获取数据时,我无法在线程上运行.请参阅下面的代码示例
class MainActivity extends Activity implements Runnable {
public void onCreate() {
new Thread(this).start();
}
public void run() {
//here is code for download data from server after completion this and in handler i m call other class in setdata() method....
}
public void setData() {
new CheckData(this);
}
}
class CheckData {
public CheckData(Context context) {
context.runUIonthread(){//cant call as runUIthread............
}
}
Run Code Online (Sandbox Code Playgroud) 我正在从IntentServiceAndroid O 中动态创建 Webview ,并出现以下崩溃:
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:353)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.RuntimeException: Did not yet override the UI thread
at org.chromium.base.ThreadUtils.getUiThreadHandler(ThreadUtils.java:5)
at org.chromium.base.ThreadUtils.runningOnUiThread(ThreadUtils.java:45)
at com.android.webview.chromium.WebViewChromiumFactoryProvider.C(WebViewChromiumFactoryProvider.java:149)
at com.android.webview.chromium.WebViewChromiumFactoryProvider.l(WebViewChromiumFactoryProvider.java:262)
at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:29)
at android.webkit.WebView.<init>(WebView.java:658)
at android.webkit.WebView.<init>(WebView.java:588)
at android.webkit.WebView.<init>(WebView.java:571)
at android.webkit.WebView.<init>(WebView.java:558)
at android.webkit.WebView.<init>(WebView.java:548)
这曾经适用于早期版本的 Android。有任何想法吗?