我使用的是AsyncTask方法,求高手帮忙。

解决方案 »

  1.   

    在线程里面想办法到UI线程里面去。可以采用Handler的机制,发送一个msg到UI线程来处理。
      

  2.   

    AsyncTask的doInBackground()方法是在其它线程里执行的,另外几个方法都是在UI线程里执行根据你的需要,你可以在除了doInBackground()方法之外的其它方法里的任意地方启动一个Activity
      

  3.   

    直接启动一个act会有什么反应?
      

  4.   

    在handler里面postRunnable,这个postRunnable里面实现你需要的就可以
      

  5.   

    楼主 希望对你有所帮助private class DataLoadingTask extends AsyncTask<String, Integer, Object>{
    ProgressDialog dialog = null;
    //加载进度框
    @Override
    protected void onPreExecute() {
    // TODO Auto-generated method stub
    dialog = new ProgressDialog(xx.this);
    dialog.setTitle("提示");
    dialog.setMessage("正在进行操作,请稍候");
    dialog.show();
    } @Override
    protected Object doInBackground(String... params) {
    // TODO Auto-generated method stub
    //耗时网络操作
                             。 return null;
    } @Override
    protected void onPostExecute(Object result) {
    // TODO Auto-generated method stub
    dialog.cancel();
      
                            //在此处调用启动activity界面就可以了
            startActivity(new Intent(xx.this,yy.class));
    }
    }
      

  6.   

    AsyncTask 是后台线程 因为要启动activity
    你应该在ui线程里启动activity
      

  7.   

    我们一般是这样的,
    当开始后台线程的时候,为这个线程做一个持有,或者找一个单例持有一个context,
    然后当后台线程需要弹出activity的时候到持有的位置去取.
    注意一下维护这个变量的存在就好了.当有新的activity时记得去替换下就好了,
    一般做一个BaseActivity,然后你在项目中所有Activity都继承它,
    在BaseActivity里面做相应的处理就好了.
      

  8.   


    Handler optionHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
    switch (msg.what) {
    case 1:
    启动activity
    break;

    }
    }
    };Message message = optionHandler.obtainMessage(1);
    optionHandler.sendMessage(message);
    之前一直用handler....
      

  9.   

    在onProgressUpdate里用Intent跳转就可以了