在后台的tableView中附加数据 - iOS

时间:2016-01-17 08:57:05

标签: ios swift uitableview background

我的应用程序就是这样 - 你按下public View getView(int position, View convertView, ViewGroup parent) { View iv = convertView; ViewHolder holder = null; if (iv == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); iv = inflater.inflate(layoutResourceId, parent, false); holder = new ViewHolder(); holder.image = (ImageView) iv.findViewById(R.id.imagview); iv.setTag(holder); } else { holder = (ViewHolder) iv.getTag(); } Picasso.with(context) .load((Integer) data.get(position)) .resize(999, 720) .onlyScaleDown() .centerInside() .into(holder.image); return iv; } static class ViewHolder { ImageView image; PhotoViewAttacher mAttacher; } 它会开始在uibutton内以特定的延迟逐个数据追加数据。由于手动设置延迟参数,有时可能需要数小时才能追加。

问题是每次我将其切换到后台时 - 应用程序会在几分钟后暂停(通常最多五次)并且整个过程会中断。

有没有处理这种情况的方法?

谢谢。

1 个答案:

答案 0 :(得分:3)

这是设计的行为,应用程序返回到后台通常只有非常短的活动时间,然后它将被暂停,但也有一些例外:

  1. 在后台播放用户可听内容的应用,例如
  2. 音乐播放器应用
  3. 在后台录制音频内容的应用
  4. 随时向用户通知其位置信息的应用,例如导航应用
  5. 支持互联网协议语音(VoIP)的应用
  6. 需要定期下载和处理新内容的应用
  7. 从外部附件接收定期更新的应用
  8. 基本上,如果您的应用需要与外部交互以获取无法在应用内生成的资源,您可以申请后台运行。

    当应用进入后台模式时,任何每个应用都可以合法地应用后台任务以短时间运行。

    在您的情况下,即使您实施了后台运行,您的应用也可能会被拒绝。如果您的应用正在执行由计时器控制的表操作添加,您应该能够自己模拟行为。

    1. 在本地保存系统时间戳,可能在UserDefault
    2. 当应用程序启动或进入前台时,获取系统时间,您可以计算时差并计算应采取的操作数量,并通过批处理操作执行该操作。
    3. 之后,清除保存的时间戳,确保下次数据不会被弄乱。