0

これが状況です。アプリへのログイン画面 (Activity) があり、いくつかのもの (今のところ別のボタン) を表示してサービスを開始する別の画面が表示されます。このサービスは、チャットの xmpp 接続を開始しています。

私が欲しいのは、ログイン画面で接続を押すと、次の画面が表示され、サービスが開始されることです。

しかし、現在、接続を押すと、次の画面でサービスが開始されるまで、ログイン画面が約 2 秒間表示されたままになります。コメントすると画面が速く表示されるため、サービスコールがすべてを遅くしていることはわかっています。

画面には onCreate のみがコーディングされており、AsyncTask も使用してみましたが、何も変わりませんでした。

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ecrancoreglayout);

    next = (Button)findViewById(R.id.boutonContinuer);
    next.setOnClickListener(this);

    Intent service_intent = new Intent(this, ChatService.class);
    startService(service_intent);
    //new ConnectWork().execute();
}

サービスは次のようになります。initConnection は、xmpp に接続して名簿などを取得する関数です...:

public class ChatService extends Service
{

@Override
public void onCreate()
{
    super.onCreate();
    packetListener = new MessageListener();
}

@Override  
public int onStartCommand(Intent intent, int flags, int startId)
{  
    initConnection();

    handler = new Handler();
    return START_NOT_STICKY;  
}  


@Override
public IBinder onBind(Intent intent)
{
    return null;
}
}

私は何を間違っていますか?

4

0 に答える 0