2017-03-04 36 views
0

後,這是服務,我想在後臺創建即使應用程序被終止

public class CustomMyService extends Service { 

    public CustomMyService() { 

    } 

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

     return START_STICKY; 
    } 

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

    @Override 
    public void onTaskRemoved(Intent rootIntent) { 
     Intent intent = new Intent("com.android.ServiceStopped"); 
     sendBroadcast(intent); 
    } 
} 

清單文件運行於運行Android應用程序服務

<service android:name=".CustomMyService"> 
      <intent-filter android:priority="1000"> 
       <action android:name="android.location.PROVIDERS_CHANGED"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
      </intent-filter> 
     </service> 

敬請有人讓我知道。我做了所有谷歌和YouTube的搜索,沒有任何工作。

我使用紅米注3,其中我有一個選項稱爲自動啓動,如果我給這個應用程序的自動啓動權限,服務在後臺運行。

但是這個選項在許多其他的android智能手機中並不存在,所以應用程序終止時應用程序服務將被終止。

請讓我知道服務如何運行,即使應用程序終止。

+0

寫一個私有的類方法與你希望你的服務來執行,並從'onStartCommand稱之爲()'的代碼。除非需要某些東西來初始化服務,否則構造函數不是必需的。 –

回答

1

使用AlarmManager來喚醒您的服務時間。因爲服務將在應用程序終止時停止。它需要再次撤銷,並且警報管理有助於再次啓動服務。

連續服務有很多方法提及,但這些方法在kitkat版本後沒有幫助

如果你已經成功地運行你的服務,即使在應用程序終止後,不使用任何鬧鐘管理器,如調度方法,請讓我知道。

+0

報警管理器我試過了,但是確實發生了......當我得到解決方案時,我一定會分享.. –

1

onStartCommand方法和帕拉姆:

START_STICKY

START_NOT_STICKY

START_REDELIVER_INTENT

START_STICKY_COMPATIBILITY

如果不工作,也許你沒有系統的權限,以保持服務在後臺運行

+0

這些應用如Facebook,whatsapp一直在後臺運行如何 –

0

這裏是演示:

public class SyncJobService extends Service { 
private String TAG = "mytag"; 
private Timer timer = new Timer(); 
private EventBus evenBus = EventBus.getDefault(); 
public static Date lastSyncDate; 

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

@Override 
public void onCreate() { 
    super.onCreate(); 
    timer.scheduleAtFixedRate(new TimerTask() { 
     @Override 
     public void run() { 
      Log.d(TAG, "run: StartSyncEvent"); 
    //    Implement your logic 


      } 
     }, 0, 5 * 60 * 1000);//5 Minutes 

} 

@Override 
public void onDestroy() { 
    Log.d(TAG, "onDestroy: "); 
    super.onDestroy(); 
} 

} 

清單文件:

<service 
     android:name=".service.SyncJobService" 
     android:enabled="true" 
     android:exported="false" /> 
+0

你的服務做了什麼,你能告訴我們嗎? –

+0

它用於與服務器同步數據。 –

0

在一些手機一樣聯想,XOLO等被終止背景的第三方應用程序。因此,當應用程序關閉時,它不會允許後臺服務。請使用其他手機檢查您的服務。 1.使用開始前臺服務。 2.在啓動粘貼時,如果應用程序終止,服務會自動重新啓動以供後臺進程使用。

0

將您的服務作爲前臺進程,以便Android系統將視爲前臺應用並且不會輕易殺死。使用下面的代碼使您的服務成爲前臺。

StartForeground(100, new Notification()); 

請記住,您需要在服務的ondestroy中調用stopforeground(100)。

相關問題