Android应用程序没有响应使用线程

时间:2016-07-12 08:17:08

标签: android multithreading handler

我实现了一个具有UI的程序。在UI我有2个按钮(开始和结束)。当我点击开始按钮我的应用程序中的服务运行,并使用完成按钮我的服务完成 在我的服务中,我连接到xmpp服务器,当互联网的速度很高时,我没有任何问题,但是当互联网的速度很低时,连接xmpp server和我的用户界面需要很长时间#&# 39;做任何事情并且坠毁。我把一个线程连接到xmpp服务器。

我的代码是:

public class FirstAct  extends Activity{
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    btnStart.setOnClickListener( new OnClickListener() {
      @Override
      public void onClick(View v) {
        startService(new Intent(act, MainActivity.class));
    }});

    btnEnd.setOnClickListener( new OnClickListener() {
      @Override
      public void onClick( View v ) {
        stopService(new Intent(act, MainActivity.class));
    }});
  }
}

// ------------------------

public class MainService extends Service {

  @Override
  public void onStart(Intent intent, int startId) {
    ....
    toastHandler2.sendEmptyMessage(0);
    ....
  }

  private final Handler toastHandler = new Handler() {
    @SuppressWarnings({ "null","unused" })
    @Override
    public void handleMessage(android.os.Message msg){
      try{
        connectToXmppServer();
        }catch(Exception e){    
      }
    }
  };     

我应该怎么做,当ConnectToXMPP需要很长时间,所有程序都没有崩溃?

请帮帮我

1 个答案:

答案 0 :(得分:0)

我用这个帖子而不是id解决了我的问题:

WHERE