你必须为每个服务的一个获取数据和一个创建不同的线程像这样
final Handler handlerStartup = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Change the UI of your activity in handler here
}
};
new Thread() {
public void run() {
callWebService(url);
handlerStartup.sendEmptyMessage(0);
}
}.start();
这样你就必须创建另一个线程为您的其他服务中插入数据,如果你试图改变UI在线程有你面对窗口泄漏故障的问题
OR
有你调用Web服务类,在doBackground方法扩展的AsyncTask您调用Web服务的另一种方式
而且代码用于检查网络连接是下面
public class AppStatus {
private static AppStatus instance = new AppStatus();
ConnectivityManager connectivityManager;
NetworkInfo wifiInfo, mobileInfo;
static Context context;
boolean connected = false;
public static AppStatus getInstance(Context ctx) {
context = ctx;
return instance;
}
public Boolean isOnline(Context con) {
try {
connectivityManager = (ConnectivityManager) con
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager
.getActiveNetworkInfo();
connected = networkInfo != null
&& networkInfo.isAvailable() && networkInfo.isConnected();
return connected;
} catch (Exception e) {
System.out.println("CheckConnectivity Exception: " + e.getMessage());
Log.v("connectivity", e.toString());
}
return connected;
}
}
何地u需要检查是否有数据连接或不写
如果(!AppStatus.getInstance(本).isOnline(这本)){
AlertDialog.Builder builder = new AlertDialog.Builder(
LoginActivity.this);
builder.setTitle("No Internet");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage("Can't access Server");
builder.setPositiveButton("ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
return;
}
});
AlertDialog diag = builder.create();
diag.show();
Log.v("Home", "############################You are not online!!!!");
}
你在哪里提到了一段时间后,Web服务将被一次又一次地调用? – 2014-08-26 11:50:09