2017-03-26 8 views
0

이 질문은 the one I asked for iOS의 줄에 있으며 this one과 관련이 없습니다.실행 중이 지 않을 때 백그라운드에서 Android 앱 시작

Android 기기에서 강제 종료되었거나 기기가 마지막으로 다시 시작된 이후에 시작되지 않은 앱을 실행하는 데 사용할 수있는 메커니즘이 무엇인지 알고 싶습니다. 포 그라운드에서 앱을 시작할 방법이 없다고 생각하지만 배경에서 앱을 시작하는 방법이 있어야합니다.

아마도이 알림을 처리하기 위해 Google 앱을 시작하는 일종의 '자동 원격 알림'을 보낼 수 있으며 사용자에게 표시 할 로컬 알림을 설정하기로 결정할 수 있습니다.

나는 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이 절대 호출되지 않는다는 것입니다.