应用程序恢复后,doInbackground方法未运行

时间:2018-05-06 00:45:18

标签: android android-asynctask

我通过HttpURLConnection获取图像数据,现在第一次获取onPostexcute上的图像数据后,图像显示在imageview(onresume)中,但此时服务器更新图像数据(图像已更改),现在doinbackground不工作.i想要在服务器更改图像后立即更改图像视图图像。但它不能立即工作。我需要重新启动应用程序然后才能更改。我想立即更改图像帮助我

1 个答案:

答案 0 :(得分:0)

你应该使用一个计时器来检查新的图像间隔,但缺点是它将对应用程序内存使用有很大贡献,如果它做太多的工作可以冻结应用程序,但这不太可能发生在Android设备上来自 LOLLIPOP 及以上

...
import java.util.Timer;
import java.util.TimerTask;

   ...
   Timer timer = new Timer();

   ...
   timer.scheduleAtFixedRate(new TimerTask() {
   @Override
   public void run() {
       //load you image from url to image view

   }, 1000, 2000);
   ...

退出程序时别忘了取消计时器

或者你可以选择使用Service,但它可能对你的工作来说太多了,你可以在你的应用程序中使用该服务来获得更多功能

...
import android.content.BroadcastReceiver;

public class NetworkChangeReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, final Intent intent) {
        //load you image from url to image view

    }
}

注意:不要忘记取消注册活动中的服务。 您也可以按照@xenolion

的建议查看Firebase Cloud Messaging