ImageView可见性错误与计时器

cre*_*tor 6 android visibility timer imageview timertask

package name.cpr;

import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.Timer;
import java.util.TimerTask;

public class ExampleActivity extends ActionBarActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);
        Timer timer = new Timer();
        timer.schedule(new CheckConnection(), 0, 3000);
        ImageView iv = (ImageView) findViewById(R.id.imageView);
        iv.setVisibility(View.VISIBLE);
    }
    class CheckConnection extends TimerTask{
        public void run(){
            ImageView iv = (ImageView) findViewById(R.id.imageView);
            iv.setVisibility(View.INVISIBLE); //<- Unfortunatly Error Here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

启动应用程序,第一次图像视图可见性工作,但计时器不工作,如果计时器启动相同的错误不幸....已经停止

Hem*_*rma 0

您可能想使用 android.os.Handler 代替。

public class ExampleActivity extends ActionBarActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);
        ImageView iv = (ImageView) findViewById(R.id.imageView);
        iv.setVisibility(View.VISIBLE);
        //
        new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                        iv.setVisibility(View.INVISIBLE);
                }
        }, 3000);
    }
}
Run Code Online (Sandbox Code Playgroud)

祝你好运。:)

  • 这是正确的方法:使用“Handler”。这段代码会等待3秒,然后隐藏图像;op 的代码会立即隐藏图像,然后等待 3 秒并再次隐藏它......一次又一次。 (3认同)