小编mmr*_*mrn的帖子

Android runOnUiThread/AsyncTask无法解析CalledFromWrongThreadException

我正在为Android应用程序工作并使用AsyncTask类实现ProgressBar.

问题是在某些设备上,它会导致"CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图." 在onPostExecute中.在这些设备上,问题发生在100%.在其他设备上,它工作正常.

public final class MyAsyncTask extends AsyncTask<String, Integer, String>
{
    private ProgressBar progress;
    private ListActivity activity;

    public MyAsyncTask(ListActivity activity, ProgressBar progress)
    {
        this.progress = progress;
        this.activity = activity;
    }

    protected void onPreExecute()
    {
        this.progress.setVisibility(view.VISIBLE);
    }

    protected String doInBackground(String[] arg0)
    {
        // getting xml via httpClient
        return string;
    }

    protected void onPostExecute(String result)
    {
        this.progress.setVisibility(view.GONE);
    }
Run Code Online (Sandbox Code Playgroud)

我不明白为什么onPostExecute不能在那些特定设备上的UI线程上运行.

接下来,我尝试用runOnUiThread调用它,以确保它在UI线程上运行.

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        ProgressBar progress = (ProgressBar)findViewById(R.id.some_view_progressbar);
        MyAsyncTask task = new MyAsyncTask(activity, progress);
        task.execute();
    }
} …
Run Code Online (Sandbox Code Playgroud)

multithreading android handler android-asynctask

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

JavaScript中浮点数的划分

我试图将屏幕宽度除以变量,以便在webview中绘制等间距的UI部分.

但是,当变量为3时,JavaScript中的100/3结果为33.3333333333333336,而第三部分无法按预期绘制,因为商的总和大于100%,我说.

这个问题有什么好的解决方法吗?

javascript floating-point division floating-accuracy

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

在PHP中检测SVG图像

使用PHP,我想检查上传的图像是jpg,gif,png还是svg格式.我发现exif_imagetype函数可以检查文件格式,但它不支持svg格式.有没有办法在PHP中检测svg格式?

php svg image

2
推荐指数
4
解决办法
4564
查看次数