2017-01-20 35 views
6

有關此的原始文檔看起來不完整。我按照本指南這似乎並沒有在任何地方導致我:React Native - 無頭JS示例

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

我應該在哪裏把java文件? 我該如何開始這項工作?

+0

我現在實際上也在解決這個問題。你有沒有進展?我認爲你可以通過https://facebook.github.io/react-native/docs/appregistry.html#startheadlesstask –

+0

開始任務。我爲Android系統實現了一個帶有後臺服務的本地模塊。這非常直截了當。我會在某個時候再試一次,並在此發佈我的發現。 – Alex

+0

小心分享您的Android服務嗎?因爲我做了類似的事情:D –

回答

0

將.java文件放入您的項目中。例如。 /app/src/main/java/com/alex/app/service/

如果要執行特定的JavaScript代碼而不顯示ReactRootView,則可以使用自定義的HeadlessJsTaskService

要開始任務,只需撥打startService(new Intent(this, MyTaskService.class));,例如從其他服務或甚至從一項活動中調用。

提示: 我改變了教程的getTaskConfig()方法,因此它允許空演員:

@Override 
@Nullable 
protected HeadlessJsTaskConfig getTaskConfig(Intent intent) { 
    Bundle extras = intent.getExtras(); 
    WritableMap data = extras != null ? Arguments.fromBundle(extras) : null; 
    return new HeadlessJsTaskConfig(
      "SomeTaskName", 
      data, 
      5000); 
} 

或者至少改變它,所以它不只是默默的,如果沒有提供額外失敗。