我必须在Android项目中使用线程。有时候,它正常运作,但有时候不会;它不会启动(不调用SendToServer()方法),或者它启动但在线程没有完成之前突然返回到另一个函数(返回更新;行)。Android线程有时无法启动
注:受影响的值大于0,它给出条件并转到if语句。
这是我的代码示例;
public static Boolean MyUpdateFunction(MyObject myobject){
Boolean updated=false;
//Code for updating local database
int affected= SqliteDb.update(....);
if(affected>0)
{
//Send updated data to server
//For this I must use Thread(I can't use AsyncThread)
updated=true;
SendToServer();
}
return updated;
}
public static void SendToServer()
{
try{
;
Thread th=new Thread(new Runnable() {
public void run() {
try {
//Create data and send it to server
//.......
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
th.start();
th.join();
}
catch(SQLException e)
{
Toast.makeText(myContext,"ERROR: "+e.getMessage(), Toast.LENGTH_LONG).show();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
您也可以使用由Android SDK提供的AsyncTask进行后台任务。 – JoxTraex
'th.start(); th.join();' - 为什么要使用线程? – Howard
因为某些原因,我无法使用AsyncTaks。我使用一个库生成代理类,它不支持AsyncTask,所以我必须使用线程 – essbek