2017-03-26 20 views
0

この質問はthe one I asked for iOSの行にあり、this oneとは関係ありません。Androidアプリが起動していないときにバックグラウンドで起動する

強制終了されたAndroidデバイス上で、またはデバイスが最後に再起動されてから開始されていないアプリを起動するために使用できるメカニズムは何ですか?フォアグラウンドでアプリを起動する方法はないと思うが、バックグラウンドでアプリを起動する方法があるはずだ。

おそらく、この通知を処理するためにアプリを起動する「サイレントリモート通知」を送信することができ、ユーザーに表示するローカル通知を設定することもできます。

私は、OSの気まぐれの対象ではない文書化された100%信頼性の高い方法を探していますが、実際にはバックグラウンドでアプリを起動し、そのことを許可します。

+0

あなたは 'サービス'に精通していますか? – nandsito

答えて

0

お試しくださいguide

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name"> 
    ... 
    <!-- 
     Because android:exported is set to "false", 
     the service is only available to this app. 
    --> 
    <service 
     android:name=".RSSPullService" 
     android:exported="false"/> 
    ... 
<application/> 

をそして、あなたは何が必要にこのブロックを追加します: 基本的には、マニフェストにこれを追加し

public class RSSPullService extends IntentService { 
    @Override 
    protected void onHandleIntent(Intent workIntent) { 
     // Gets data from the incoming Intent 
     String dataString = workIntent.getDataString(); 
     ... 
     // Do work here, based on the contents of dataString 
     ... 
    } 
} 

これguideも役立ちます。

0

BroadcastReceiverから、デバイスの起動、スケジュールされたアラームなど、さまざまなシステムブロードキャストに対応してアプリを起動できます。バックグラウンドプロセスをホストする正しいコンポーネントはServiceです。フォアグラウンド状態を要求すると、サービスは強制終了されにくくなり、進行中の(却下不可能な)通知が作成されます。

ユーザーのBroadcastReceiverがインストールされてから手動で起動しない限り、または最後に強制終了された場合を除き、あなたのBroadcastReceiverは決して呼び出されません。

関連する問題