如何为Android创建具有返回值的新线程
我有一个活动,我需要运行基于互联网状态。问题是结构。我在//其他代码中有许多行… 我想将它们放在onCreate()中,而不是handleMessage()中。但我不知道该怎么做 我正在寻找的结构:如何为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
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线程中访问网络,我甚至不需要问这个问题。。。