表示没有看懂你的代码,你的 activity 实现了 Runnable 接口,且不说这种做法的好坏,但是我没有看到你在哪里对他进行了执行

解决方案 »

  1.   


    我是新手 刚学习得 找的网上的源码拼凑的  Runnable不是直接调用run()么?  我想直接开个线程运行RUN()里的代码应该怎么做呢? run()里面的代码就是在SD卡上的根目录里的Record.txt文件 转换成字符串。我想将这个字符串在主线程读出来。
      

  2.   

    IO操作不要放在UI线程中执行,会停止响应。放在线程中可以这么写
    private View.OnClickListener endListen=new View.OnClickListener() {
      
      @Override
      public void onClick(View v) {
                   new Thread(){
    @Override
    public void run() {
                                   //读取文件操作。
                                   //读取成功后想Handler中发送消息,进行UI操作
                                   handler.sendEmptyMessage(SUCCESS);
                            }
                 }.start();
      } }; private Handler handler  = new Handler(){
    @Override
    public void handleMessage(Message msg) {
    super.handleMessage(msg);
    //生成安全措施界面
    if(msg.what == SUCCESS){
                                  //处理UI
                            }
                   }
    };思路就是这样,自己调一下吧=。=
      

  3.   

    思路是这样的:
    1.楼主是想做一个耗时操作,那势必要放在一个线程里来做,所以要 new Runnable(),然后楼主可以在run方法里写读取SD卡的业务实现。
    2.那我SD卡的String读出来了,怎么才能通知并显示在UI主画面上呢?这是就要new Handler(),来通知并传值给UI
    3.以上两点实现了,那怎么样才能让线程启动呢,要有一个事件触发一下,new Thread(new Runnable()).start() 启动线程,就OK了。楼主刚学,思路要清楚...java:
    private View.OnClickListener endListen=new View.OnClickListener() {
      @Override
      public void onClick(View v) {
                new Thread(){
                @Override
                public void run() {
                                   //读取文件操作。
                                   //读取成功后想Handler中发送消息,进行UI操作
                                   handler.sendEmptyMessage(SUCCESS);
                            }
                 }.start();
      } };   
     
    private Handler handler  = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                //生成安全措施界面
                if(msg.what == SUCCESS){
                                  //处理UI
                            }
                   }
    };