我創建了一個調用服務的活動,並且該服務創建了一個線程,用於向/從服務器發送和接收一些數據,我可以打開其他應用程序和服務線程運行正常,但是當我關閉活動時,服務繼續運行,但線程停止工作。爲什麼???我如何保持線程運行!!當我關閉活動時,在我的服務上創建的線程被殺死
代碼
活動
package com.connectus.app;
public class ConnectUsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connect_us);
Intent startServiceIntent = new Intent(getApplicationContext(), ConnectUsService.class);
startService(startServiceIntent);
}
服務
package com.connectus.app;
public class ConnectUsService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Thread t=new Thread(new Runnable() {
private DataInputStream in;
private BufferedReader br;
private DataOutputStream out;
@Override
public void run() {
Socket server=null;
try{
server=new Socket("10.10.40.58",4444);
in = new DataInputStream(server.getInputStream());
br=new BufferedReader(new InputStreamReader(in));
out = new DataOutputStream(server.getOutputStream());
while(true){
out.writeUTF("aaaaa");
String leido=in.readUTF();
out.writeUTF("asdf");
Thread.sleep(60000);
}
}catch(IOException ioe){
ioe.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
}
});
t.start();
return START_STICKY;
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
}
這是我的代碼只是一部分,我希望它能幫助。
你必須有一個錯誤。請發佈您的相關代碼。 – Merlevede
但我在Logcat上看不到任何錯誤。讓我把代碼。 –
告訴我們代碼請 – cheloncio