0
我的問題是,我在遠程服務器手動更改圖像後,如果我重新運行我的應用程序,android仍然顯示舊圖像。在我的真實設備中清除CATCHE和DATA,仍然顯示舊圖像。如果我卸載並再次運行它,那麼它會顯示新圖像,在遠程服務器中是什麼。爲什麼在清除數據和catche之後,仍然顯示舊圖像?Android:更新遠程服務器中的圖像後,imageview仍然顯示舊圖像
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/[email protected]")
.resize(250,250)
.centerCrop()
.into(imageView);
}
我試過onDestroy(),刪除catche和數據,但仍然是同樣的問題。
@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;
謝謝你,問題就迎刃而解了。 – j22purikas