Androidプロジェクトでスレッドを使用する必要があります。場合によっては、正しく機能することもありますが、機能しないこともあります。起動しない(SendToServer()メソッドを呼び出さない)か、起動してもスレッドが終了しない前に突然別の関数に戻ります(更新された戻り値;行)。
注:影響を受ける値は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();
}
}