2016-11-24 4 views

답변

0

제 생각에 직접 작성해야합니다. 불행히도 Headless JS는 작업이 완료 될 때까지 일시 중지되므로 적합하지는 않습니다.

네트워크 요청, 타이머 등 UI에는 영향을주지 않는 한 아무 작업이나 할 수 있습니다. 작업이 완료되면 (즉, 약속이 해결 된 경우) React Native는 다른 작업이 실행 중이거나 전경 앱이없는 경우 '일시 중지'모드로 전환됩니다.

https://facebook.github.io/react-native/docs/headless-js-android.html

업데이트 :이 응용 프로그램이 포커스를 잃을 경우 실행중인 프로세스를 유지하는 것이 가능하다. 예제를 제공하기 위해 테스트 앱 소스를 찾아야 할 것이다.

결국, 필자는 안드로이드에서 부팅 할 때 배경 서비스를 작성했습니다. React Native는 이러한 유형의 서비스를 허용하지 않으며 RN이 헤드리스 앱을 만들 의도도 없습니다.

+0

plz 일부 코드를 추가하면 일정 기간 동안 링크가 작동하지 않을 수도 있습니다. –

+0

_ 외부 리소스에 대한 링크가 권장됩니다. 그러나 링크를 둘러싼 상황을 동료 사용자가 알 수 있도록하고 그것이있는 이유를 알려주십시오. 대상 사이트가 도달 할 수 없거나 영구적으로 오프라인 상태가되는 경우 중요한 링크의 가장 중요한 부분을 항상 인용하십시오. _ – Bugs

0

추가 파일 이름 BackgroundAudio.java

import android.content.Intent; 
import android.os.Bundle; 

import com.facebook.react.HeadlessJsTaskService; 
import com.facebook.react.bridge.Arguments; 
import com.facebook.react.jstasks.HeadlessJsTaskConfig; 

public class BackgroundAudio extends HeadlessJsTaskService { 

    @Override 
    protected @Nullable HeadlessJsTaskConfig getTaskConfig(Intent intent) { 
     Bundle extras = intent.getExtras(); 
     if (extras != null) { 
      return new HeadlessJsTaskConfig(
        "BackgroundAudio", 
        Arguments.fromBundle(extras), 
        5000); 
     } 
     return null; 
    } 
} 

편집 AndroidManifest.xml에 내 index.android.js에서 다음

<service android:name=".BackgroundAudio" android:enabled="true" android:label="BackgroundAudio" /> 

: 마지막으로

import BackgroundAudio from './src/BackgroundAudio' 
AppRegistry.registerHeadlessTask('BackgroundAudio',() => BackgroundAudio) 

그리고, BackgroundAudio.js index.android.js에서 참조하는 파일은 다음과 같이 읽습니다.

export async function BackgroundAudio (taskData) { 
    alert('BACKGROUND AUDIO') 
} 
+0

어떻게 시작할 수 있습니까 ** BackgroundAudio ** 서비스 – Man

0

정확한 사용 사례에 따라 도움이 될 수있는이 질문을 한 이후 제작 된 몇 가지 패키지가 있습니다. 앱이 때 -

특히 당신은 쉽게 정기적으로 (작업 시간 제한 관리를 처리하기 위해 큐를 사용하는 거의 모든이 예약 된 작업이 최대 30 초 동안 실행됩니다 15 분 ~)을 실행하는 백그라운드 작업을 예약 react native background taskreact native queue을 사용할 수 있습니다 폐쇄되었습니다 (iOS 및 Android 용 교차 플랫폼에서 작동 함). 그러나, 당신의 의도가 끊임없이 백그라운드에서 실행되는 서비스를 갖는 것이라면 RN 세계에서 가능하다는 확신이 없습니다 (내 게시물의 시간에 관한 한).