所以这里的情况。我的应用程序有一个登录屏幕(活动),然后在另一个屏幕之后显示一些东西(现在是另一个按钮)并启动服务。此服务正在为聊天启动 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;
}
}
我究竟做错了什么 ?