2017-04-22 150 views
-1

不斷在後臺運行服務。例如,即使應用程序關閉,也必須啓動一項服務,該服務將顯示一次20秒的敬酒消息。不斷在後臺運行服務

public class AppService extends IntentService { 

    public int onStartCommand(Intent intent, int flags, int startId) { 
     return START_STICKY; 
    } 

    public AppService() { 
     super("AppService"); 
    } 

    @Override 
    protected void onHandleIntent(Intent workIntent) { 
     Toast.makeText(getApplicationContext(), "hai", Toast.LENGTH_SHORT).show(); 
     SystemClock.sleep(20000); 
    } 
} 
+0

。 – aldok

回答

3

下面的代碼。如果你想確保服務的應用程序被關閉後仍在運行,然後用前景色服務工作對我來說...

public class AppService extends Service { 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public void onCreate() { 
    Toast.makeText(this, " MyService Created ", Toast.LENGTH_LONG).show(); 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    Toast.makeText(this, " MyService Started", Toast.LENGTH_LONG).show(); 
    return START_STICKY; 
} 
} 
0

在你的清單,你宣佈你的服務,添加:

android:process=":processname" 

這讓一個單獨的進程中運行的服務,因此它不會與應用程序被殺害。

然後,您可以選擇是否要使用前景。它會顯示持續的通知,但會降低服務被殺的可能性。

此外,如果要創建連續運行的服務,請使用Service,而不是IntentService。 IntentService在完成其操作時停止。