java - 从缓存中清除应用程序时出现的应用程序异常

标签 java android android-studio

大家好,感谢您的阅读。

这个问题是我原来的帖子的后续问题。 https://stackoverflow.com/questions/25828412/main-activity-progress-bars-and-strike-through-text-reset-after-a-period-of-app 。然而,我现在已经弄清楚发生了什么,但仍然需要一些关于如何解决它的建议。

只是回顾一下......

基本上,我编写了一个媒体播放器应用程序,它使用许多标准进度条,这些进度条以编程方式在播放列表中的每个轨道标题下方创建。每个进度条都会跟踪播放列表中位于其下方的歌曲的进度。

我还在 list 中使用以下代码来确保应用程序始终返回到相同的主要 Activity 。

android:alwaysRetainTaskState="true"
android:launchMode="singleTask"

现在我遇到的问题是,当用户返回主屏幕,然后在 30 到 60 分钟后重新启动应用程序时,尽管其他一切都保持原样 - 如果进度条仅部分满(即轨道已暂停或中途停止)突然跳到 100%。

我发现当应用程序缓存的进程被其他应用程序从列表末尾撞出时,就会发生这种情况。 IE。我可以通过暂停该应用程序,然后打开大量其他应用程序,然后返回到该应用程序来立即重现该问题。我还注意到,当它不再出现在缓存进程列表中时,“oncreate”也会被调用,因此看起来应用程序已关闭,并且本质上是在重新创建 Activity 。然而,奇怪的是,之前设置为某个值的进度条突然被重新创建,进度设置为 100%。进展

现在,如果重新创建它们,它们的进度肯定应该默认为 0 吗?我什至尝试将它们创建时的进度设置为 0(即 myprogbar.setProgress=(0) 但这似乎没有什么区别。

我怎样才能...

a.确保进度条在创建时设置为0?

b.在 oncreate 期间检查应用程序是否已经在运行并销毁它的所有以前版本?

c.确保应用程序不会从缓存进程中删除?

d.解决问题的其他方法。

我很感激我可以创建一个循环,在进度条创建后对其进行循环并重置它们,但我试图了解进度条在哪里获得 100% 的值以及这与应用程序有何关系被推出缓存进程列表。

非常感谢

最佳答案

不幸的是,我从来没有弄清楚为什么会发生这种情况,但为了防止其他人遇到同样的问题,我找到了解决方法。

基本上,我设置了一个计时器来循环显示屏幕上的所有进度条,并在 Activity 加载时重置它们。不优雅也不聪明,但它有效。

    final Timer myTimer = new Timer();
    myTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    ProgressBar temppb;
                    for (int i = 0; i < (totalnumberofprogressbars); i++) {
                            temppb = (ProgressBar) findViewById(i + 1);
                            temppb.setProgress(0);
                    }
                }
            });

            myTimer.cancel();
        }
    }, 50,50);

关于java - 从缓存中清除应用程序时出现的应用程序异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25872563/

相关文章:

java - 滚动时如何在recyclerview中保持阴影

android - 无法访问 JSON 数组 Android 的某些成员

android - FragmentTabHost 图形布局不呈现

java - Spring MVC Controller 映射正则表达式

java - Android ARToolkit - 标记的位置

java - 重定向 html 页面

android - 更改文本开/关颜色以切换 Android

android - 如何更改移动字体意味着安装自定义字体到系统

android - 无法将库添加到Android Studio中的项目

java - 获取从非泛型类型类扩展的类的泛型类型