相关疑难解决方法(0)

从服务访问UI线程处理程序

我在Android上尝试一些新东西,我需要访问UI线程的处理程序.

我知道以下内容:

  1. UI线程有自己的处理程序和循环器
  2. 任何消息都将放入UI线程的消息队列中
  3. looper接收事件并将其传递给处理程序
  4. 处理程序处理消息并将特定事件发送到UI

我希望我的服务必须获取UI线程处理程序并将消息放入此处理程序.这样就可以处理此消息并将其发布到UI.这里的服务将是一个正常的服务,将由一些应用程序启动.

我想知道这是否可行.如果是这样,请建议一些代码片段,以便我可以尝试.

关心Girish

service user-interface multithreading android handler

87
推荐指数
3
解决办法
7万
查看次数

Android如何在其他类中运行OnUiThread?

在我的应用程序中,在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)

multithreading android asynchronous

29
推荐指数
5
解决办法
4万
查看次数

在 Android O 中动态创建 WebView 的 RuntimeException

我正在从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。有任何想法吗?

android webview

5
推荐指数
1
解决办法
992
查看次数