アンドロイドの反応ネイティブでバックグラウンドサービスを作成する方法はありますか? 私は毎時間何時間も起きて、シンプルなjavascriptタスクを起動する何らかのタイマーを望みます。反応ネイティブのアンドロイドのバックグラウンドサービス
答えて
はい、できます。
Reactネイティブはネイティブ(Java/Objc)からJSブリッジの上で "ネイティブ" JSモジュールの概念で動作します(モジュールにはブリッジの「他の」側から呼び出すことができるメソッドがあります)。すべてのUIのものはブリッジの上に構築されています(ビューの生成を処理するメインの "ネイティブ"モジュールは "UIManager"と呼ばれます)。ブリッジを直接使用することは可能ですが、唯一の制限は通信が非同期でなければならないことです。
JAVAコードからjavascript関数を呼び出すことができます。ドキュメントについてはCheck this linkを参照してください。
はい。それが私がやったことです。コアAPIには含まれていません。 – andri
こんにちは@andri、あなたは十分に要点をスニペットを共有することができますか?参照用のレポがある場合はそれ以上のものが必要です。 :D – holyxiaoxin
リリースv0.36リリースヘッドレスjs、Androidのみ。絶対に
https://facebook.github.io/react-native/docs/headless-js-android.html
ヘッドレスタスクでネイティブモジュールのメソッドを呼び出すことは可能ですか? 数時間後に反応ブリッジが眠っている(ドーズモード)ため、JSからのネイティブコールは、デバイスが起動するまで保留状態になっているようです。 私のネイティブプレーヤーが前のプレイヤーを終了すると、私はプレイリストの次のトラック(Javascript側)を再生したいと思います。私は私のネイティブモジュールから "play(nextSong)"を呼び出すJSに通知するヘッドレスタスクを使用しています。しかし、ネイティブ関数は、私がデバイスを起動するまで実行されません。 –
。実際には、これを完全にJS(ネイティブコードを書く必要はありません)でreact native queueとreact native background taskのクロスプラットフォームで完全に達成するのは簡単です。
いくつかの制限があります。バックグラウンドタスクは、最小間隔で約15分ごとにのみ起動されます(タイミングは完全には保証されません - iOS/Androidスケジューラはバッテリ寿命、電流スケジュールされたタスクを起動するタイミングを決定するときにCPU負荷など)。また、タスクは30秒に制限されています。
I've written a tutorial on how to set all this up here。
起動して実行するのが難しい場合は教えてください。
- 1. 反応ネイティブのアンドロイドのgenymotionエラーjava.util.concurrent.ExecutionException:
- 2. 反応し、ネイティブのリストビューラインフィード
- 3. 新しい反応以前のバージョンの反応ネイティブのネイティブプロジェクト
- 4. アップルウォッチに反応し、ネイティブ
- 5. 反応ネイティブでのZ-インデックスの問題
- 6. アンドロイド:バックグラウンドサービス
- 7. ネイティブAndroidのデバッグキーストアに反応しない
- 8. 反応ネイティブのデバイストークンを取得
- 9. 反応するネイティブ・ベクトルのアイコンを:processReleaseResources
- 10. AndroidでネイティブのonPressに反応する
- 11. ネストルーティングと反応ネイティブの使い方
- 12. 反応ネイティブ0.16エラーへのアップグレード
- 13. 取り込みのネイティブ反応のピッカー(アンドロイド)を埋める方法
- 14. 反応したネイティブのアンドロイドのWebviewが埋め込まれませんyoutube url
- 15. アンドロイド:バックグラウンドサービスが
- 16. d3とwebViewでネイティブに反応する
- 17. 背景geolocation反応するネイティブ
- 18. ネイティブAndroidとGenymotionに反応します
- 19. 反応ネイティブを使用したバーコードスキャン
- 20. ユニティとネイティブを反応させる
- 21. ネストされたオブジェクトが反応-ネイティブ
- 22. フレックスボックスはネイティブで反応しますか?
- 23. 反応したネイティブのiosでのイベントのリッスン
- 24. ネイティブ・カスタム・ビューに反応します。ネイティブ・プロップのpropTypeはありません。
- 25. 反応ネイティブのクリックで特定のボタンを無効にする
- 26. 他のコンポーネントとのネイティブ双方向バインディングに反応する
- 27. 反応ネイティブのアプリケーションのURLスキーム/リンクを設定する方法
- 28. Androidのネイティブ反応に適していないアプリのタイプ
- 29. どのようにしてアンドロイドの反応ネイティブの最後のアクティビティに戻ることができますか?
- 30. 反応するネイティブのアンドロイドのすべての画面で共通のツールバーを使用できますか?
解決策は見つかりましたか? – Sriraman
私も知りたい:あなたは解決策を見つけましたか? –
いいえ、私は回避策がありました。私は、Javaでバックグラウンドサービスを作成します。これは、reactContext.getJSModule(...)でjavascriptコードを呼び出します。emit( 'javascript_event_name'、params) 反応ネイティブで直接利用可能なサービスはありませんAPI。 – andri