问题:我有一种情况,我需要一些数据上传到服务器中最早推出的应用程序。而上传任务应该即使用户立即退出该应用程序来完成。这个任务不一定要一直在做,但仅限于应用在发射过程中的第一次。
我曾尝试:
我目前使用的用于此目的的服务。我在应用程序启动时启动粘滞服务和确实在服务工作。所以,即使用户立即退出该应用程序,我的服务将被重新启动,我会重试上载过程。
但在这里,我需要保持一个布尔国旗在共享偏好hasUploadDone
记得上传过程已经完成或没有,我需要每一个应用程序启动时,虽然不要求大部分的时间进行检查。我不认为这是一个很好的方法。有没有更好的方法来从这项服务除了处理这种情况 - 布尔组合的标志?它可以使用工作,经理什么更好的方式来实现?
提前致谢!
使用此共享偏好:
在您的MainActivity
@Override
public void onStop() {
super.onStop();
SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
editor.putBoolean("previouslyStarted", true);
editor.commit();
}
然后在你onCreate方法 如果您的应用程序启动之前共享偏好将保存值“真”的“previouslySaved”否则将默认“假”
SharedPreferences saved_values = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
previouslyStarted = saved_values.getBoolean("previouslyStarted", false);
如果您的应用程序首次指出,如果使用其他检查
if (previouslyStarted) {
//App has been started previously.
}
else {
//App started for the first time.
//Upload your data here.
}