我正在将一个应用程序从 C# 移植到 Android,我需要一些帮助来决定我需要在 Android 上使用哪种服务类型来实现相同的结果。
目前有 2 个单独的应用程序。更新者和客户端。更新程序每 5 秒轮询一次网络服务器以获取更新。只要有可用更新,它就会下载它,然后警告客户端有新内容可用。
然后客户端在屏幕上显示内容。
注意:此软件将在 android 播放器上运行,其唯一目的是运行这 2 个应用程序。而已。不会有用户与之交互。
所以我的问题是我需要为此使用什么服务?
亲切的问候,尼克
您可以查看以下链接 http://developer.android.com/reference/android/app/Service.html http://developer.android.com/guide/components/services.html http://www.vogella。 com/articles/AndroidServices/article.html
您可以添加一个线程,该线程将在每 5 秒后下载一次代码。这是代码
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
public class MyService extends Service {
String tag="TestService";
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this, "Service created...", Toast.LENGTH_LONG).show();
Log.i(tag, "Service created...");
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
Log.i(tag, "Service started...");
fetchData();
}
public void fetchData()
{
new Thread(new Runnable()
{
@Override
public void run()
{
while(true)
{
final String strRes = downloadXML("http://uri.com");
runOnUiThread(new Runnable()
{
@Override
public void run()
{
//do whatever once download complete
}
});
try{
Thread.sleep(5000);
}catch(Exception ee){}
}
}
}).start();
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service destroyed...", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}