Documentation warning against short-lived Contexts

It's better to use an Application Context rather than hoping the
activity won't be destroyed in another thread (because it will).

Change-Id: I9bf842d0d7dbedcc509a4a314d23a9a6cfca4d48
Fix: 29873669
This commit is contained in:
Robin Lee
2016-08-12 12:46:28 +01:00
parent ab6e7c3502
commit da23618043

View File

@@ -20,6 +20,7 @@ import android.annotation.Nullable;
import android.annotation.WorkerThread; import android.annotation.WorkerThread;
import android.app.Activity; import android.app.Activity;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.app.Service;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -356,6 +357,9 @@ public final class KeyChain {
* *
* <p> This method may block while waiting for a connection to another process, and must never * <p> This method may block while waiting for a connection to another process, and must never
* be called from the main thread. * be called from the main thread.
* <p> As {@link Activity} and {@link Service} contexts are short-lived and can be destroyed
* at any time from the main thread, it is safer to rely on a long-lived context such as one
* returned from {@link Context#getApplicationContext()}.
* *
* @param alias The alias of the desired private key, typically returned via * @param alias The alias of the desired private key, typically returned via
* {@link KeyChainAliasCallback#alias}. * {@link KeyChainAliasCallback#alias}.
@@ -400,6 +404,9 @@ public final class KeyChain {
* *
* <p> This method may block while waiting for a connection to another process, and must never * <p> This method may block while waiting for a connection to another process, and must never
* be called from the main thread. * be called from the main thread.
* <p> As {@link Activity} and {@link Service} contexts are short-lived and can be destroyed
* at any time from the main thread, it is safer to rely on a long-lived context such as one
* returned from {@link Context#getApplicationContext()}.
* *
* @param alias The alias of the desired certificate chain, typically * @param alias The alias of the desired certificate chain, typically
* returned via {@link KeyChainAliasCallback#alias}. * returned via {@link KeyChainAliasCallback#alias}.