首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保留android进度条或恢复进度条

保留android进度条或恢复进度条
EN

Stack Overflow用户
提问于 2020-02-28 19:44:18
回答 1查看 259关注 0票数 0

我想知道如何保持进度条的状态或从它停止的地方继续。让我解释一下,这是一个有进度条的计时器,当用户关闭活动或关闭活动时,计时器作为后台服务启动(计时器正常工作),我希望当用户关闭活动或应用程序时,当他返回时,进度条将恢复到原来的位置。现在发生的情况是,当它返回到计时器时,进度条返回到零。下面是我的适配器代码,课程和计时器服务在这里发生

这是我保存进度条状态的方法

代码语言:javascript
复制
private static SharedPreferences.Editor pref;
private static int saveProgressBarState;
private static SharedPreferences getProgressBarState;

private CountDownTimer countDown(final long time, final ProgressBar lessonProgress, long originalTimerSize) {

        final int timerLengthInSecond = (int) time / 1_000;

        lessonProgress.setMax((int) originalTimerSize / 1_000);

        return new CountDownTimer(time, 1000) {
            @Override
            public void onTick(long l) {

                long secondRemaining = l / 1_000;

                lessonProgress.setProgress((int) (timerLengthInSecond - secondRemaining));

                //Getting progress of progress bar
                saveProgressBarState = lessonProgress.getProgress();

            }

            @Override
            public void onFinish() {

                lessonProgress.setProgress(timerLengthInSecond);
            }
        };

    }

//this method is called when onPause() is called on the activity
public static void runLessonTimerInBackground(Context context) {

        pref = context.getSharedPreferences("LESSONPROGRESS", MODE_PRIVATE).edit();
        pref.putInt("savedprogress", progressBarStateSave);
        pref.apply();

    }

我希望获得保存的进度continue并恢复进度,然后继续进度

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 20:56:21

您需要在您的onResume()中添加这些链接,我假设您可以在lesson的实际进度中调整并应用这些链接。

代码语言:javascript
复制
int lastProgress = pref.getInt("savedprogress", 0); //0 is default value

lessonProgress.setProgress(lastProgress); //this will set the progress

//here you might also need to do some other stuff related to your code and req
//you can also resume your lesson video from here, etc.

如果你想在sharePref中保存多个课程进度,我建议你像这样保存进度

代码语言:javascript
复制
String progressPrefName = "savedProgress_" + lessonID; //here lessonID is lesson's unique ID
pref.putInt(progressPrefName, progressBarStateSave); // here pass the name which can be "savedProgress_1" referring to lesson with ID 1

然后你就可以像这样得到它

代码语言:javascript
复制
String progressPrefName = "savedProgress_" + lessonID; 

int lastProgress = pref.getInt(progressPrefName, 0); //0 is default value

lessonProgress.setProgress(lastProgress); //this will set the progress
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60451046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档