Android 用于在ViewPager中加载数据的软件模式

Android 用于在ViewPager中加载数据的软件模式,android,android-viewpager,Android,Android Viewpager,我有一个关于如何在ViewPager中为每个页面最佳加载数据的问题 在为我的邮件应用程序应用ViewPager之前,由于我在查看邮件时只加载了一个页面,因此使用了一个后台线程(LoadMailDetailThread)加载邮件数据并将其绑定到该特定页面的ListView以显示数据。 在LoadMailDetailThread中,它执行以下任务: -根据输入的邮件id加载邮件。 -将邮件设置为读取状态。 -解析邮件内容以向每个url添加超链接。 -解析邮件内容以添加每个电话号码的链接。 -将其绑定

我有一个关于如何在ViewPager中为每个页面最佳加载数据的问题

在为我的邮件应用程序应用ViewPager之前,由于我在查看邮件时只加载了一个页面,因此使用了一个后台线程(LoadMailDetailThread)加载邮件数据并将其绑定到该特定页面的ListView以显示数据。 在LoadMailDetailThread中,它执行以下任务: -根据输入的邮件id加载邮件。 -将邮件设置为读取状态。 -解析邮件内容以向每个url添加超链接。 -解析邮件内容以添加每个电话号码的链接。 -将其绑定到ListView。 等等

在使用ViewPager之前,这对许多应用程序版本都很有效

现在我需要实现一个功能,允许用户刷卡更改邮件。 在应用ViewPager之后,我现在可以在任何给定时间加载最多三个页面。 为了重用现有代码,每个页面都使用LoadMailDetailThread加载邮件数据并将其绑定到该页面中的ListView。但在这种新设计中,如果页面不是可见页面,则不需要完成所有任务,例如,将邮件设置为读取状态,解析邮件。 所以为了让LoadMailDetailThread区分当前是否加载可见页面,我将一个标志传递给它(1表示可见,0表示不可见)。 因此,如果我们正在加载可见页面,我们将邮件设置为读取状态并进行解析,否则我们将在onPageSelected中执行这些任务

我认为这不是一个很好的设计,因为在LoadMailDetailThread中,我有很多if语句,比如 如果(taskType==可见){} 如果(taskType==不可见){}

到处都是

我的问题是,有没有推荐的方法或模式来解决这类问题? 为可见类和不可见类编写单独的类? 或者修改LoadMailDetailThread以仅执行一般任务(加载邮件),并让onPageSelected执行特定任务(将邮件设置为读取状态,解析内容)


谢谢

嗨,朋友,我想你是在viewpager中使用片段吧?在可以使用onViewCreated()和onDestroyView()方法的片段中,在滑动viewpager时会调用它。在这里,您可以编写调用线程的代码(或销毁该线程)