小编Leo*_*Leo的帖子

Asynctask错误处理

AsyncTask用来执行一些后台计算,但我无法找到正确的方法来处理异常.目前我使用以下代码:

private class MyTask extends AsyncTask<String, Void, String>
{
    private int e = 0;

    @Override
    protected String doInBackground(String... params)
    {
        try
        {
            URL url = new URL("http://www.example.com/");
        }
        catch (MalformedURLException e)
        {
            e = 1;
        }

        // Other code here...

        return null;
    }

    @Override
    protected void onPostExecute(String result)
    {
        if (e == 1)
            Log.i("Some Tag", "An error occurred.");

        // Perform post processing here...
    }
}
Run Code Online (Sandbox Code Playgroud)

我相信变量e可以由主线程和工作线程写入/访问.据我所知,onPostExecute()只有在doInBackround()完成后才会运行,我可以省略任何同步吗?

这是坏代码吗?是否有一个约定或正确的方法来处理异常AsyncTask

android exception-handling thread-safety android-asynctask

16
推荐指数
1
解决办法
1万
查看次数

当onReceive方法存在时,不会调用App Widget onUpdate

AppWidgetProvider班上有以下代码.

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    Log.i("Custom", "Update");
}

@Override
public void onReceive(Context context, Intent intent) {
    Log.i("Custom", "Recieve");
}
Run Code Online (Sandbox Code Playgroud)

如果我注释掉该onReceive方法,onUpdate每次我将小部件添加到主屏幕时都会调用该方法,如果我不这样做则不会运行.有什么想法吗?

android android-appwidget

11
推荐指数
1
解决办法
4458
查看次数

这个线程安全吗?

我正在编写一个Android应用程序,并使用工作线程来处理某些信息.阅读完我的代码后,我现在不确定它是否是线程安全的.

我已经编写了我的代码的简化版本,我省略了Handler用于与主线程进行通信的对象,显然是进程本身.

public class myClass implements Runnable
{
    private String myString;

    @Override
    public void run()
    {
        myString = "Some Value";
    }
}
Run Code Online (Sandbox Code Playgroud)

通过运行类似于此的东西来调用它.

myClass class = new myClass();
Thread thread = new Thread(class);
thread.start()
Run Code Online (Sandbox Code Playgroud)

那么,这个代码是不是线程安全的,因为我myStringrun()函数中修改(在主线程中声明)?

multithreading android thread-safety runnable

7
推荐指数
1
解决办法
1130
查看次数

PHP中的PHP的`preg_match_all`功能

在PHP中,如果我们需要匹配类似的东西["one","two","three"],我们可以使用以下正则表达式preg_match.

$pattern = "/\[\"(\w+)\",\"(\w+)\",\"(\w+)\"\]/"
Run Code Online (Sandbox Code Playgroud)

通过使用括号,我们还可以提取单词一,二和三.我知道MatcherJava 中的对象,但无法获得类似的功能; 我只能提取整个字符串.我将如何模仿preg_matchJava中的行为?

php java regex preg-match

7
推荐指数
1
解决办法
7443
查看次数

应用程序小部件上的Marquee TextView

我正在开发一个AppWidget我需要一个TextView显示文本作为选框的地方.我已经尝试使用以下代码(正如常规中所做​​的那样Activity),但文本不会滚动.

<TextView
    android:layout_width="150dip" 
    android:layout_height="wrap_content"
    android:text="@string/marquee_forever"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever" />
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何解决这个问题?

android marquee textview android-appwidget

6
推荐指数
1
解决办法
3030
查看次数