如何为Android创建具有返回值的新线程

如何为Android创建具有返回值的新线程,android,optimization,thread-safety,structure,Android,Optimization,Thread Safety,Structure,我有一个活动,我需要运行基于互联网状态。问题是结构。我在//其他代码中有许多行… 我想将它们放在onCreate()中,而不是handleMessage()中。但我不知道该怎么做 我正在寻找的结构: need a new thread like below: boolean xxxx() { judge internet; if internet is ok, return ok; else return bad; } public class MainActivity

我有一个活动,我需要运行基于互联网状态。问题是结构。我在//其他代码中有许多行…

我想将它们放在onCreate()中,而不是handleMessage()中。但我不知道该怎么做

我正在寻找的结构:

need a new thread like below:
boolean xxxx() {
    judge internet;
    if internet is ok, return ok;
    else return bad;
}

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // codes...

    if (xxxx().equals("bad")) return;

    // other codes...

} 
}
我必须使用的结构:

Runnable newTread = new Runnable() {
@Override
public void run() {
    // judge net statements
    msg.obj = num;
    handler.sendMessage(msg);
}

};

Handler handler = new Handler() {

@Override
public void handleMessage(Message msg) {
    switch (msg.num) {
       case internet is ok: // other codes...
       case internet is bad: do nothing           
    }
} 
};

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // codes...

    Thread t= new Thread(newTread);
    t.start();

} 
}

onCreate是一个void方法,请记住,您不能从其内部执行return。对不起,我不想从onCreate()返回任何内容,我试图将一个值从新线程传递到onCreate()。对不起,我理解错了。实际上,我不能在onCreate()中使用return xxx。但是我可以使用return而不使用onCreate()中的xxx,对吗?如果你想在不使用其他线程的情况下处理网络状态,我已经实现了另一个解决方案…如果你感兴趣,我可以发布它..tsiro,非常感谢!但我听说必须以新的思路接入互联网。如果我可以在UI线程中访问网络,我甚至不需要问这个问题……onCreate是一个无效的方法,请记住,您不能从它内部执行return。对不起,我不想从onCreate()返回任何内容,我尝试将新线程的值传递给onCreate(),对不起,我理解错了。实际上,我不能在onCreate()中使用return xxx。但是我可以使用return而不使用onCreate()中的xxx,对吗?如果你想在不使用其他线程的情况下处理网络状态,我已经实现了另一个解决方案…如果你感兴趣,我可以发布它..tsiro,非常感谢!但我听说必须以新的思路接入互联网。如果我可以在UI线程中访问网络,我甚至不需要问这个问题。。。