gpg:: AndroidSupport
#include <android_support.h>
支援 Android 4.0 以下版本的函式。
摘要
Android 生命週期回呼
如果應用程式指定 Android 2.3 或 3.x 裝置 (API 14 以下版本),Play 遊戲服務無法自動接收活動生命週期回呼。在這種情況下,Play 遊戲服務就需要藉助擁有的「活動」來通知生命週期事件。凡是擁有 GameServices 物件的活動,都必須從各自的生命週期回呼函式中呼叫 AndroidSupport::* 函式。這些函式中的引數與 Android 提供的引數相符,因此不需要額外的處理。
如果應用程式指定 Android 4.0 以上版本 (API 版本大於或等於 14),則不需要執行大部分的函式呼叫。對於這類應用程式,只能呼叫 OnActivityResult 函式。
使用 Java 活動在 Android 4.0 之前版本遊戲的範例程式碼
在 Java Activity 中,新增以下內容。您可能需要合併這個程式碼與現有的生命週期函式。
import android.app.Activity; import android.content.Intent; public class YourActivity extends Activity { protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); nativeOnActivityCreated(this, savedInstanceState); } protected void onDestroy(){ super.onDestroy(); nativeOnActivityDestroyed(this); } protected void onPause(){ super.onPause(); nativeOnActivityPaused(this); } protected void onResume(){ super.onResume(); nativeOnActivityResumed(this); } protected void onStart(){ super.onStart(); nativeOnActivityStarted(this); } protected void onStop(){ super.onStop(); nativeOnActivityStopped(this); } protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); nativeOnActivitySaveInstanceState(this, outState); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); nativeOnActivityResult(this, requestCode, resultCode, data); } // Implemented in C++. private static native void nativeOnActivityCreated( Activity activity, Bundle savedInstanceState); private static native void nativeOnActivityDestroyed(Activity activity); private static native void nativeOnActivityPaused(Activity activity); private static native void nativeOnActivityResumed(Activity activity); private static native void nativeOnActivitySaveInstanceState( Activity activity, Bundle outState); private static native void nativeOnActivityStarted(Activity activity); private static native void nativeOnActivityStopped(Activity activity); private static native void nativeOnActivityResult( Activity activity, int requestCode, int resultCode, Intent data); }
void Java_com_example_yourapp_YourActivity_nativeOnActivityCreated( JNIEnv* env, jobject thiz, jobject activity, jobject saved_instance_state) { gpg::AndroidSupport::OnActivityCreated(env, activity, saved_instance_state); } void Java_com_example_yourapp_YourActivity_nativeOnActivityDestroyed( JNIEnv* env, jobject thiz, jobject activity) { gpg::AndroidSupport::OnActivityDestroyed(env, activity); } void Java_com_example_yourapp_YourActivity_nativeOnActivityPaused( JNIEnv* env, jobject thiz, jobject activity) { gpg::AndroidSupport::OnActivityPaused(env, activity); } void Java_com_example_yourapp_YourActivity_nativeOnActivityResumed( JNIEnv* env, jobject thiz, jobject activity) { gpg::AndroidSupport::OnActivityResumed(env, activity); } void Java_com_example_yourapp_YourActivity_nativeOnActivitySaveInstanceState( JNIEnv* env, jobject thiz, jobject activity, jobject out_state) { gpg::AndroidSupport::OnActivitySaveInstanceState(env, activity, out_state); } void Java_com_example_yourapp_YourActivity_nativeOnActivityStarted( JNIEnv* env, jobject thiz, jobject activity) { gpg::AndroidSupport::OnActivityStarted(env, activity); } void Java_com_example_yourapp_YourActivity_nativeOnActivityStopped( JNIEnv* env, jobject thiz, jobject activity) { gpg::AndroidSupport::OnActivityStopped(env, activity); } void Java_com_example_yourapp_YourActivity_nativeOnActivityResult( JNIEnv* env, jobject thiz, jobject activity, jint request_code, jint result_code, jobject data) { gpg::AndroidSupport::OnActivityResult( env, activity, request_code, result_code, data); }
使用 Java 活動執行 Android 4.0 以上版本遊戲的程式碼範例
在 Java Activity 中,新增以下內容。您可能需要合併這個程式碼與現有的生命週期函式。
public class YourActivity extends Activity { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); nativeOnActivityResult(this, requestCode, resultCode, data); } // Implemented in C++. private static native void nativeOnActivityResult( Activity activity, int requestCode, int resultCode, Intent data); }
void Java_com_example_yourapp_YourActivity_nativeOnActivityResult( JNIEnv* env, jobject thiz, jobject activity, jint request_code, jint result_code, jobject data) { gpg::AndroidSupport::OnActivityResult( env, activity, request_code, result_code, data); }
公開的靜態函式 |
|
---|---|
OnActivityCreated(JNIEnv *env, jobject activity, jobject saved_instance_state)
|
void
應呼叫以從 Java 活動的 onActivityCreated 轉送資料。
|
OnActivityDestroyed(JNIEnv *env, jobject activity)
|
void
應呼叫以從 Java 活動的 OnActivityDestroyed 轉送資料。
|
OnActivityPaused(JNIEnv *env, jobject activity)
|
void
應呼叫以從 Java 活動的 OnActivityPause 轉送資料。
|
OnActivityResult(JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result)
|
void
應呼叫以從 Java 活動的 OnActivityResult 轉送資料。
|
OnActivityResumed(JNIEnv *env, jobject activity)
|
void
應呼叫此方法,以從 Java 活動的 OnActivityResumed 上轉送資料。
|
OnActivitySaveInstanceState(JNIEnv *env, jobject activity, jobject out_state)
|
void
應呼叫以從 Java 活動的 OnActivitySaveInstanceState 轉送資料。
|
OnActivityStarted(JNIEnv *env, jobject activity)
|
void
應呼叫以從 Java 活動的 OnActivityStarted 轉送資料。
|
OnActivityStopped(JNIEnv *env, jobject activity)
|
void
應呼叫以從 Java 活動的 OnActivityStopped 轉送資料。
|
公開的靜態函式
OnActivityCreated
void gpg::AndroidSupport::OnActivityCreated( JNIEnv *env, jobject activity, jobject saved_instance_state )
應呼叫以從 Java 活動的 onActivityCreated 轉送資料。
只有 Android 2.3.x 支援才必要。
OnActivityDestroyed
void gpg::AndroidSupport::OnActivityDestroyed( JNIEnv *env, jobject activity )
應呼叫以從 Java 活動的 OnActivityDestroyed 轉送資料。
只有 Android 2.3.x 支援才必要。
OnActivityPaused
void gpg::AndroidSupport::OnActivityPaused( JNIEnv *env, jobject activity )
應呼叫以從 Java 活動的 OnActivityPause 轉送資料。
只有 Android 2.3.x 支援才必要。
OnActivityResult
void gpg::AndroidSupport::OnActivityResult( JNIEnv *env, jobject activity, jint request_code, jint result_code, jobject result )
應呼叫以從 Java 活動的 OnActivityResult 轉送資料。
OnActivityResumed
void gpg::AndroidSupport::OnActivityResumed( JNIEnv *env, jobject activity )
應呼叫此方法,以從 Java 活動的 OnActivityResumed 上轉送資料。
只有 Android 2.3.x 支援才必要。
OnActivitySaveInstanceState
void gpg::AndroidSupport::OnActivitySaveInstanceState( JNIEnv *env, jobject activity, jobject out_state )
應呼叫以從 Java 活動的 OnActivitySaveInstanceState 轉送資料。
只有 Android 2.3.x 支援才必要。
OnActivityStarted
void gpg::AndroidSupport::OnActivityStarted( JNIEnv *env, jobject activity )
應呼叫以從 Java 活動的 OnActivityStarted 轉送資料。
只有 Android 2.3.x 支援才必要。
OnActivityStopped
void gpg::AndroidSupport::OnActivityStopped( JNIEnv *env, jobject activity )
應呼叫以從 Java 活動的 OnActivityStopped 轉送資料。
只有 Android 2.3.x 支援才必要。