LongPollで動作するサービスがあり、データを受信するとすべて問題ありませんが、データを受信しないと空の結果を受け取ります(長いポーリング最大時間== 25秒)サービスが手動でオフになることがあります(そしてサービスのリストに表示されません)。
では、このサービスを (.. 常に..) 実行し続けるにはどうすればよいでしょうか?
ロングポーリングで機能し、サービスのonCreate()
(構造)で最初に呼び出す再帰関数:
//"u" is "new utils()".
public class myservice extends Service {
public static boolean started=false;
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this, "created qweqwe", Toast.LENGTH_LONG).show();
longpoll();
this.started=true;
}
@Override
public void onDestroy() {
super.onDestroy();
this.started=false;
}
private String url = "http://example.com/lp.php";
private void longpoll() {
try {
String resp = u.getData(url); //max time of working u.getData(lpurl) - 25s.
if (resp.length()>0) doSmthWithData(resp); //It works fine
} catch(Exception e) {}
longpoll();
}
}