如何在后台任务应用程序安装后只有一次

问题描述 投票:-2回答:1

问题:我有一种情况,我需要一些数据上传到服务器中最早推出的应用程序。而上传任务应该即使用户立即退出该应用程序来完成。这个任务不一定要一直在做,但仅限于应用在发射过程中的第一次。

我曾尝试:

我目前使用的用于此目的的服务。我在应用程序启动时启动粘滞服务和确实在服务工作。所以,即使用户立即退出该应用程序,我的服务将被重新启动,我会重试上载过程。

但在这里,我需要保持一个布尔国旗在共享偏好hasUploadDone记得上传过程已经完成或没有,我需要每一个应用程序启动时,虽然不要求大部分的时间进行检查。我不认为这是一个很好的方法。有没有更好的方法来从这项服务除了处理这种情况 - 布尔组合的标志?它可以使用工作,经理什么更好的方式来实现?

提前致谢!

android android-service android-workmanager
1个回答
0
投票

使用此共享偏好:

在您的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.
}
© www.soinside.com 2019 - 2024. All rights reserved.