2016-11-24 9 views

答えて

0

私はあなた自身で書く必要があります。残念ながら、ヘッドレスJSはタスクの完了時に一時停止するので、適切ではないかと思います。

あなたのタスクには、UIに触れない限り何でも行うことができます:ネットワーク要求、タイマーなど。タスクが完了すると(つまり、約束が解決されると)、React Nativeは「一時停止」モードになります(実行中の他のタスクやフォアグラウンドアプリがない限り)。

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

更新:アプリがフォーカスを失った場合に実行中のプロセスを維持することが可能です。私は例を提供するために、テストアプリのソースを探す必要があります。

私は最終的に、起動時にAndroidでバックグラウンドサービスを書きました。 React Nativeはこの種のサービスを許可していないし、RNがヘッドレスアプリを作成する意図もない。

+0

plzいくつかのコードを追加すると、期間中にリンクが死んでしまう可能性があります。 –

+0

_外部リソースへのリンクが推奨されますが、リンクの周りにコンテキストを追加して、仲間のユーザーには何か、ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用してください._ – Bugs

0

編集のAndroidManifest.xml私index.android.jsで次に

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

ファイル名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; 
    } 
} 
を追加します。

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

正確なユースケースに応じて参考にできるこの質問をしてから作成されたパッケージがいくつかあります。

具体的には、でバックグラウンドタスクを簡単にスケジュールして実行することができます(定期的に約15分ごとにスケジュールされたタスクが30秒以下実行されます)。 (これはiOSとAndroid用のクロスプラットフォームで動作します)。しかし、あなたの意図が常にバックグラウンドで実行されているサービスを持っている場合、私はRNの世界で可能であるとは確信していません(私の投稿の時間限り)。

関連する問題