图像切换器无法正常工作

时间:2017-09-05 21:56:19

标签: android multithreading handler runnable

我有一个应该展示广告的Android应用程序,这些广告是从服务器中提取的,然后它们被保存在手机上,我做了一个应该显示广告的方法但不幸的是,它没有按预期工作它显示第一个图像很长一段时间然后它太快地循环它们我不知道为什么
这是我的方法

private void startShowAds(final ArrayList<Ad> adArrayList) {
    Handler handler = new Handler();
    for (int i = 0; i < adArrayList.size(); i++) {
        Ad ad = adArrayList.get(i);
        Runnable runnable = new Runnable() {        
            public void run() {
                imageView.setBackgroundDrawable(getBitMap(ad.getFileUri()));
                handler.postDelayed(this, ad.getDuration());
            }
        };
        handler.postDelayed(runnable, ad.getDuration());
    }
    startShowAds(dbHelper.getAllAdRecords(longitude, latitude));
}

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

试试这个:

private void startShowAds(final ArrayList<Ad> adArrayList) {
    Handler handler = new Handler();
    long offset = 0; 
    for (int i = 0; i < adArrayList.size(); i++) {
        Ad ad = adArrayList.get(i);
        Runnable runnable = new Runnable() {
            public void run() {
                imageView.setBackgroundDrawable(getBitMap(ad.getFileUri()));;
            }
        };
        handler.postDelayed(runnable, offset);
        offset += ad.getDuration();
    }
}