在Android程序休眠功能 [英] Sleep function in android program

查看:119
本文介绍了在Android程序休眠功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有一些问题让我的程序睡觉 什么即时试图做的是当btnStart为pressed冷杉随机组图片,以12 ImageButtons 然后,我希望它暂停5秒,然后改变第一的ImageButton到另一张图片

我的code是这样的,现在它暂停马上当按钮是pressed ...

  btnStart.setOnClickListener(新View.OnClickListener(){
        @覆盖

        公共无效的onClick(视图v){
            // TODO自动生成方法存根

            Collections.shuffle(PIC);
            INT时间= 1;
            preSS = TRUE;

            pic.get(0).setImageDrawable(getResources()getDrawable(R.drawable.memgreen));
            pic.get(1).setImageDrawable(getResources()getDrawable(R.drawable.memgreen));
            pic.get(2).setImageDrawable(getResources()getDrawable(R.drawable.memred));
            pic.get(3).setImageDrawable(getResources()getDrawable(R.drawable.memred));
            pic.get(4).setImageDrawable(getResources()getDrawable(R.drawable.memblue));
            pic.get(5).setImageDrawable(getResources()getDrawable(R.drawable.memblue));
            pic.get(6).setImageDrawable(getResources()getDrawable(R.drawable.memwhite));
            pic.get(7).setImageDrawable(getResources()getDrawable(R.drawable.memwhite));
            pic.get(8).setImageDrawable(getResources()getDrawable(R.drawable.mempurple));
            pic.get(9).setImageDrawable(getResources()getDrawable(R.drawable.mempurple));
            pic.get(10).setImageDrawable(getResources()getDrawable(R.drawable.memyellow));
            pic.get(11).setImageDrawable(getResources()getDrawable(R.drawable.memyellow));

            尝试 {
                视频下载(5000);

                pic.get(0).setImageDrawable(getResources()getDrawable(R.drawable.coin));

            }赶上(InterruptedException异常E){
                // TODO自动生成的catch块
                e.printStackTrace();
            }
     }
  });
 

解决方案

好吧,如果你想在用户界面保持响应你不能阻止与UI线程视频下载有。

创建一个新的线程,然后睡了吧。睡眠后,为改变UI线程上的观点绘制运行的方法

 新主题(新的Runnable(){
    @覆盖
    公共无效的run(){
        尝试 {
            视频下载(5000);
        }赶上(InterruptedException异常E){
            e.printStackTrace();
        }
        runOnUiThread(新的Runnable(){
            @覆盖
            公共无效的run(){
                pic.get(0).setImageDrawable(getResources()getDrawable(R.drawable.coin));
            }
        });
    }
})。开始();
 

Having some problem getting my program to sleep What im trying to do is when the btnStart is pressed firs randomly set pictures to 12 ImageButtons Then i want it to pause for 5 secs and then change the first ImageButton to another picture

My code looks like this, right now it pauses straight away when the button is pressed...

       btnStart.setOnClickListener(new View.OnClickListener() {
        @Override

        public void onClick(View v) {
            // TODO Auto-generated method stub

            Collections.shuffle(pic);
            int time=1;
            press=true;

            pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.memgreen));
            pic.get(1).setImageDrawable(getResources().getDrawable(R.drawable.memgreen));
            pic.get(2).setImageDrawable(getResources().getDrawable(R.drawable.memred));
            pic.get(3).setImageDrawable(getResources().getDrawable(R.drawable.memred));
            pic.get(4).setImageDrawable(getResources().getDrawable(R.drawable.memblue));
            pic.get(5).setImageDrawable(getResources().getDrawable(R.drawable.memblue));
            pic.get(6).setImageDrawable(getResources().getDrawable(R.drawable.memwhite));
            pic.get(7).setImageDrawable(getResources().getDrawable(R.drawable.memwhite));
            pic.get(8).setImageDrawable(getResources().getDrawable(R.drawable.mempurple));
            pic.get(9).setImageDrawable(getResources().getDrawable(R.drawable.mempurple));
            pic.get(10).setImageDrawable(getResources().getDrawable(R.drawable.memyellow));
            pic.get(11).setImageDrawable(getResources().getDrawable(R.drawable.memyellow));

            try {
                Thread.sleep(5000);

                pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin));

            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
     }
  });

解决方案

Well, if you want the UI to remain responsive you can't block the UI thread with Thread.sleep there.

Create a new thread, then sleep it. After the sleep, run the method for changing the view drawable on the UI thread

new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin));
            }
        });
    }
}).start();

这篇关于在Android程序休眠功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆