Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:在远程服务器中更新图像后,imageview仍然显示旧图像_Android_Picasso - Fatal编程技术网

Android:在远程服务器中更新图像后,imageview仍然显示旧图像

Android:在远程服务器中更新图像后,imageview仍然显示旧图像,android,picasso,Android,Picasso,我的问题是,当我在远程服务器上手动更改图像后,如果我重新运行我的应用程序,android仍然会显示旧图像。清除真实设备中的捕获和数据,仍然显示旧图像。若我卸载并再次运行它,那个么它将显示新的映像,即远程服务器中的内容。为什么在清除数据和捕捉后,它仍然显示旧图片 public class MainActivity extends AppCompatActivity { ImageView imageView; @Override protected void onCreate(Bundle sa

我的问题是,当我在远程服务器上手动更改图像后,如果我重新运行我的应用程序,android仍然会显示旧图像。清除真实设备中的捕获和数据,仍然显示旧图像。若我卸载并再次运行它,那个么它将显示新的映像,即远程服务器中的内容。为什么在清除数据和捕捉后,它仍然显示旧图片

public class MainActivity extends AppCompatActivity {

ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageView = (ImageView)findViewById(R.id.imageView);

    Picasso.with(this)
            .load("http://gator4227.hostgator.com/~harakas/images/olaripihlak@hotmail.com.jpg")
            .resize(250,250)
            .centerCrop()
            .into(imageView);
}
我尝试在onDestroy()中删除catch和data,但仍然存在相同的问题

 @Override
protected void onDestroy() {
    deleteCache(this);
    clearApplicationData();
    super.onDestroy();
}

public static void deleteCache(Context context) {
    try {
        File dir = context.getCacheDir();
        if (dir != null && dir.isDirectory()) {
            deleteDir(dir);
        }
    } catch (Exception e) {}
}

public static boolean deleteDir(File dir) {
    if (dir != null && dir.isDirectory()) {
        String[] children = dir.list();
        for (int i = 0; i < children.length; i++) {
            boolean success = deleteDir(new File(dir, children[i]));
            if (!success) {
                return false;
            }
        }
    }
    return dir.delete();
}

public void clearApplicationData() {

    File cacheDirectory = getCacheDir();
    File applicationDirectory = new File(cacheDirectory.getParent());
    if (applicationDirectory.exists()) {

        String[] fileNames = applicationDirectory.list();

        for (String fileName : fileNames) {

            if (!fileName.equals("lib")) {

                deleteFile(new File(applicationDirectory, fileName));

            }

        }

    }

}

public static boolean deleteFile(File file) {

    boolean deletedAll = true;

    if (file != null) {

        if (file.isDirectory()) {

            String[] children = file.list();

            for (int i = 0; i < children.length; i++) {

                deletedAll = deleteFile(new File(file, children[i])) && deletedAll;

            }

        } else {

            deletedAll = file.delete();

        }

    }

    return deletedAll;
@覆盖
受保护的空onDestroy(){
删除缓存(本);
clearApplicationData();
super.ondestory();
}
公共静态void deleteCache(上下文){
试一试{
File dir=context.getCacheDir();
if(dir!=null&&dir.isDirectory()){
deleteDir(dir);
}
}捕获(例外e){}
}
公共静态布尔deleteDir(文件目录){
if(dir!=null&&dir.isDirectory()){
String[]children=dir.list();
for(int i=0;i
毕加索首先尝试从内存缓存中获取图像。如果该图像在缓存中可用,则它将显示该图像。要覆盖该图像,可以使用MemoryPolicy

试一试

Picasso.with(this)
        .load("http://gator4227.hostgator.com/~harakas/images/olaripihlak@hotmail.com.jpg")
        .resize(250,250)
        .memoryPolicy(MemoryPolicy.NO_CACHE)
        .centerCrop()
        .into(imageView);