我正在使用 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [30/Dec/2017 23:57:52] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [30/Dec/2017 23:57:53] "GET /data.tsv HTTP/1.1" 404 -
对象来获取位置更新和其他GoogleCientApi
传感器,并每隔5秒将其发送到服务器。我想让它无休止地在后台运行,即24 * 7电池优化。在Accelerometer
中无需更新任何内容。请建议您使用UI
还是Service
?
如果使用IntentService
如何使用Service
运行它?任何建议或文章链接都会有所帮助。
答案 0 :(得分:1)
如果您想使用服务实现此目的
public class MyService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent)
{
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(5);
// This schedule a runnable task every x unit of time
scheduleTaskExecutor.scheduleAtFixedRate(new Runnable()
{
public void run()
{
callAPI();
}
}, 0, 10, TimeUnit.SECONDS);
return START_STICKY;
}
@Override
public void onDestroy()
{
super.onDestroy();
}
public void callAPI()
{
//Upload data to server and do your stuff
}
}
您还需要在AndroidManifest.xml
<service
android:name=".service.MyService"
android:enabled="true"
android:exported="true"
android:stopWithTask="false" />
通过活动
致电您的服务if (!checkServiceRunning())
{
Intent intent = new Intent(MainActivity.this, MyService.class);
startService(intent);
}
答案 1 :(得分:0)
使用以下组件
是可行的使用 Android前台服务获取应用打开/关闭时的当前位置。
注意:最新的Android版本不允许获取当前位置 通过Backghround服务。
使用套接字/推送器更新位置到用户服务器。
参考链接
1)。 https://developer.android.com/guide/components/services.html
2)。 http://www.truiton.com/2014/10/android-foreground-service-example/
对于Socket
1)。 https://socket.io/blog/native-socket-io-and-android/
2)。 https://github.com/socketio/socket.io-client-java
对于Pusher
答案 2 :(得分:0)