mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
@@ -39,7 +39,7 @@
|
||||
<span class="hljs-comment">// do stuff</span>
|
||||
};
|
||||
</code></pre>
|
||||
<p>You can do anything in your task as long as it doesn't touch UI: network requests, timers and so on. Once your task completes (i.e. the promise is resolved), React Native will go into "paused" mode (unless there are other tasks running, or there is a foreground app).</p>
|
||||
<p>You can do anything in your task such as network requests, timers and so on, as long as it doesn't touch UI. Once your task completes (i.e. the promise is resolved), React Native will go into "paused" mode (unless there are other tasks running, or there is a foreground app).</p>
|
||||
<h2><a class="anchor" aria-hidden="true" id="the-java-api"></a><a href="#the-java-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>The Java API</h2>
|
||||
<p>Yes, this does still require some native code, but it's pretty thin. You need to extend <code>HeadlessJsTaskService</code> and override <code>getTaskConfig</code>, e.g.:</p>
|
||||
<pre><code class="hljs css languages- java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyTaskService</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">HeadlessJsTaskService</span> </span>{
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<span class="hljs-comment">// do stuff</span>
|
||||
};
|
||||
</code></pre>
|
||||
<p>You can do anything in your task as long as it doesn't touch UI: network requests, timers and so on. Once your task completes (i.e. the promise is resolved), React Native will go into "paused" mode (unless there are other tasks running, or there is a foreground app).</p>
|
||||
<p>You can do anything in your task such as network requests, timers and so on, as long as it doesn't touch UI. Once your task completes (i.e. the promise is resolved), React Native will go into "paused" mode (unless there are other tasks running, or there is a foreground app).</p>
|
||||
<h2><a class="anchor" aria-hidden="true" id="the-java-api"></a><a href="#the-java-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>The Java API</h2>
|
||||
<p>Yes, this does still require some native code, but it's pretty thin. You need to extend <code>HeadlessJsTaskService</code> and override <code>getTaskConfig</code>, e.g.:</p>
|
||||
<pre><code class="hljs css languages- java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyTaskService</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">HeadlessJsTaskService</span> </span>{
|
||||
|
||||
@@ -36,7 +36,16 @@
|
||||
</code></pre>
|
||||
<p>This command prompts you for passwords for the keystore and key, and to provide the Distinguished Name fields for your key. It then generates the keystore as a file called <code>my-release-key.keystore</code>.</p>
|
||||
<p>The keystore contains a single key, valid for 10000 days. The alias is a name that you will use later when signing your app, so remember to take note of the alias.</p>
|
||||
<p>On Mac if you not sure where is your jdk bin folder is then perform the following command to find it, <code>$ /usr/libexec/java_home</code> it will output the directroy of jdk which looks like this, <code>/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home</code> then navigate to that directory by the following command, <code>$ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/</code> Now you can perform the keytool command with sudo permission as shown below, <code>$ sudo keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000</code> <em>Note: Remember to keep your keystore file private and never commit it to version control.</em></p>
|
||||
<p>On Mac, if you're not sure where your jdk bin folder is, then perform the following command to find it:</p>
|
||||
<pre><code class="hljs">$ /usr/libexec/java_home
|
||||
</code></pre>
|
||||
<p>It will output the directory of the jdk, which will look something like this:</p>
|
||||
<pre><code class="hljs">/Library/Java/JavaVirtualMachines/jdkX.X.X_XXX.jdk/Contents/Home
|
||||
</code></pre>
|
||||
<p>Navigate to that directory by using the command <code>$ cd /your/jdk/path</code> and use the keytool command with sudo permission as shown below.</p>
|
||||
<pre><code class="hljs">$ sudo keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
|
||||
</code></pre>
|
||||
<p><em>Note: Remember to keep your keystore file private and never commit it to version control.</em></p>
|
||||
<h3><a class="anchor" aria-hidden="true" id="setting-up-gradle-variables"></a><a href="#setting-up-gradle-variables" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Setting up gradle variables</h3>
|
||||
<ol>
|
||||
<li>Place the <code>my-release-key.keystore</code> file under the <code>android/app</code> directory in your project folder.</li>
|
||||
|
||||
@@ -36,7 +36,16 @@
|
||||
</code></pre>
|
||||
<p>This command prompts you for passwords for the keystore and key, and to provide the Distinguished Name fields for your key. It then generates the keystore as a file called <code>my-release-key.keystore</code>.</p>
|
||||
<p>The keystore contains a single key, valid for 10000 days. The alias is a name that you will use later when signing your app, so remember to take note of the alias.</p>
|
||||
<p>On Mac if you not sure where is your jdk bin folder is then perform the following command to find it, <code>$ /usr/libexec/java_home</code> it will output the directroy of jdk which looks like this, <code>/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home</code> then navigate to that directory by the following command, <code>$ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/</code> Now you can perform the keytool command with sudo permission as shown below, <code>$ sudo keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000</code> <em>Note: Remember to keep your keystore file private and never commit it to version control.</em></p>
|
||||
<p>On Mac, if you're not sure where your jdk bin folder is, then perform the following command to find it:</p>
|
||||
<pre><code class="hljs">$ /usr/libexec/java_home
|
||||
</code></pre>
|
||||
<p>It will output the directory of the jdk, which will look something like this:</p>
|
||||
<pre><code class="hljs">/Library/Java/JavaVirtualMachines/jdkX.X.X_XXX.jdk/Contents/Home
|
||||
</code></pre>
|
||||
<p>Navigate to that directory by using the command <code>$ cd /your/jdk/path</code> and use the keytool command with sudo permission as shown below.</p>
|
||||
<pre><code class="hljs">$ sudo keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
|
||||
</code></pre>
|
||||
<p><em>Note: Remember to keep your keystore file private and never commit it to version control.</em></p>
|
||||
<h3><a class="anchor" aria-hidden="true" id="setting-up-gradle-variables"></a><a href="#setting-up-gradle-variables" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Setting up gradle variables</h3>
|
||||
<ol>
|
||||
<li>Place the <code>my-release-key.keystore</code> file under the <code>android/app</code> directory in your project folder.</li>
|
||||
|
||||
Reference in New Issue
Block a user