2012-11-12 51 views
0

有broadcastReceiver接收啓動消息並設置警報管理器。Android服務的新線程錯誤:線程已啓動

它啓動一個服務的每一個DELAY分鐘:從romate服務器在一個新的線程

Intent intent = new Intent(); 
intent.setAction("org.jxdwinter.getMessageServcie"); 
PendingIntent pendingintent = PendingIntent.getService(arg0, 0, intent, 0); 
am = (AlarmManager) arg0.getSystemService(Context.ALARM_SERVICE); 
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), DELAY, pendingintent); 

服務調查數據:

public int onStartCommand(Intent intent, int flags, int startId) 
{ 
    this.getMessage.start(); 
    return Service.START_NOT_STICKY; 
} 
private class GetMessage extends Thread 
{ 
    public void run() 
    { 
     ... .... 
    }  
} 

而當應用程序啓動後,我可以在數據非常第一次,也沒有 錯誤。

然後服務在DELAY分鐘再次啓動,出現錯誤:線程已經啓動。

爲什麼會發生?請幫我解決這個問題。謝謝!

public int onStartCommand(Intent intent, int flags, int startId) 
{ 
    new GetMessage().start(); 
    return Service.START_NOT_STICKY; 
} 
+1

'線程'實例只能啓動一次 – fiddler

+0

@fiddler我該如何解決這個錯誤?謝謝! – jxdwinter

回答

1

也許你可能只是每次你需要它運行時創建的線程的新實例?如果是的話,不要這樣做 - 初始化新的

+0

也許你是對的!謝謝 ! – jxdwinter

0

是GetMesdsage類的實例你被靜電任何機會使用: