私はReact Nativeでバックグラウンドサービスを実行するためにHeadless.jsを使用しています。私たちはその使用法に関してかなりの問題に直面しています。 React Nativeを使用してAndroidバックグラウンドサービスを実行するための私のオプションは何ですか?ネイティブとAndroidのバックグラウンドサービスに反応します
答えて
私はあなた自身で書く必要があります。残念ながら、ヘッドレスJSはタスクの完了時に一時停止するので、適切ではないかと思います。
あなたのタスクには、UIに触れない限り何でも行うことができます:ネットワーク要求、タイマーなど。タスクが完了すると(つまり、約束が解決されると)、React Nativeは「一時停止」モードになります(実行中の他のタスクやフォアグラウンドアプリがない限り)。
https://facebook.github.io/react-native/docs/headless-js-android.html
更新:アプリがフォーカスを失った場合に実行中のプロセスを維持することが可能です。私は例を提供するために、テストアプリのソースを探す必要があります。
私は最終的に、起動時にAndroidでバックグラウンドサービスを書きました。 React Nativeはこの種のサービスを許可していないし、RNがヘッドレスアプリを作成する意図もない。
編集の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')
}
開始方法** BackgroundAudio **サービス – Man
正確なユースケースに応じて参考にできるこの質問をしてから作成されたパッケージがいくつかあります。
具体的には、でバックグラウンドタスクを簡単にスケジュールして実行することができます(定期的に約15分ごとにスケジュールされたタスクが30秒以下実行されます)。 (これはiOSとAndroid用のクロスプラットフォームで動作します)。しかし、あなたの意図が常にバックグラウンドで実行されているサービスを持っている場合、私はRNの世界で可能であるとは確信していません(私の投稿の時間限り)。
- 1. 反応ネイティブのアンドロイドのバックグラウンドサービス
- 2. ネイティブAndroidとGenymotionに反応します
- 3. ネイティブのAndroidログに反応します。
- 4. ネイティブAndroidのボタンシャドウに反応します
- 5. ネイティブAndroidステータスバーアイコンに反応します。
- 6. 反応し、ネイティブのAndroidパブリッシングストア
- 7. ネイティブAndroidのデバッグキーストアに反応しない
- 8. Androidスタジオエミュレータ反応ネイティブのホットリロード
- 9. ネイティブAndroidのビルドに反応する:app:processDebugResources
- 10. AndroidでネイティブのonPressに反応する
- 11. 反応し、ネイティブ既存のAndroidアプリの
- 12. クラッシュが反応し、ネイティブのAndroidアプリ
- 13. 反応し、ネイティブ
- 14. ネイティブのバックグラウンドタスクに反応します
- 15. 共有スタイルはネイティブ反応し、ウェブに反応しますか?
- 16. AndroidとiOSの両方に対して反応ネイティブのTwitterログイン
- 17. アニメーション中にネイティブAndroidラグに反応します
- 18. が反応し、ネイティブ
- 19. 反応がネイティブで反応しない
- 20. ネイティブWebViewエラー "_onLoadingStart"に反応します
- 21. ネイティブiOSアプリクラッシュに反応します
- 22. ネイティブ・スタッガード・レンダリングに反応します
- 23. Promise.all()とsetState()の反応ネイティブ
- 24. アップルウォッチに反応し、ネイティブ
- 25. zIndexとpagingEnabledプロパティがネイティブAndroidビルドに反応しない
- 26. ネイティブに反応しました[オブジェクトオブジェクト]
- 27. 反応したネイティブのデータテーブル
- 28. 反応したネイティブのキャッシュイメージ
- 29. 反応したネイティブのカスタムアラートダイアログ?
- 30. 反応し、ネイティブのリストビューラインフィード
plzいくつかのコードを追加すると、期間中にリンクが死んでしまう可能性があります。 –
_外部リソースへのリンクが推奨されますが、リンクの周りにコンテキストを追加して、仲間のユーザーには何か、ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用してください._ – Bugs