mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
fix(android): raise resume event on activity.onPostResume() (#6766)
This commit is contained in:
@ -290,15 +290,10 @@ function initLifecycleCallbacks() {
|
|||||||
onActivityResumed: profile("onActivityResumed", function (activity: android.support.v7.app.AppCompatActivity) {
|
onActivityResumed: profile("onActivityResumed", function (activity: android.support.v7.app.AppCompatActivity) {
|
||||||
androidApp.foregroundActivity = activity;
|
androidApp.foregroundActivity = activity;
|
||||||
|
|
||||||
if ((<any>activity).isNativeScriptActivity) {
|
|
||||||
notify(<ApplicationEventData>{ eventName: resumeEvent, object: androidApp, android: activity });
|
|
||||||
androidApp.paused = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
androidApp.notify(<AndroidActivityEventData>{ eventName: ActivityResumed, object: androidApp, activity: activity });
|
androidApp.notify(<AndroidActivityEventData>{ eventName: ActivityResumed, object: androidApp, activity: activity });
|
||||||
}),
|
}),
|
||||||
|
|
||||||
onActivitySaveInstanceState: profile("onActivityResumed", function (activity: android.support.v7.app.AppCompatActivity, outState: android.os.Bundle) {
|
onActivitySaveInstanceState: profile("onActivitySaveInstanceState", function (activity: android.support.v7.app.AppCompatActivity, outState: android.os.Bundle) {
|
||||||
androidApp.notify(<AndroidActivityBundleEventData>{ eventName: SaveActivityState, object: androidApp, activity: activity, bundle: outState });
|
androidApp.notify(<AndroidActivityBundleEventData>{ eventName: SaveActivityState, object: androidApp, activity: activity, bundle: outState });
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
@ -50,6 +50,10 @@ class NativeScriptActivity extends android.support.v7.app.AppCompatActivity {
|
|||||||
this._callbacks.onDestroy(this, super.onDestroy);
|
this._callbacks.onDestroy(this, super.onDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public onPostResume(): void {
|
||||||
|
this._callbacks.onPostResume(this, super.onPostResume);
|
||||||
|
}
|
||||||
|
|
||||||
public onBackPressed(): void {
|
public onBackPressed(): void {
|
||||||
this._callbacks.onBackPressed(this, super.onBackPressed);
|
this._callbacks.onBackPressed(this, super.onBackPressed);
|
||||||
}
|
}
|
||||||
|
@ -1006,6 +1006,30 @@ class ActivityCallbacksImplementation implements AndroidActivityCallbacks {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@profile
|
||||||
|
public onPostResume(activity: any, superFunc: Function): void {
|
||||||
|
superFunc.call(activity);
|
||||||
|
|
||||||
|
if (traceEnabled()) {
|
||||||
|
traceWrite("NativeScriptActivity.onPostResume();", traceCategories.NativeLifecycle);
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: activity.onPostResume() is called when activity resume is complete and we can
|
||||||
|
// safely raise the application resume event;
|
||||||
|
// onActivityResumed(...) lifecycle callback registered in application is called too early
|
||||||
|
// and raising the application resume event there causes issues like
|
||||||
|
// https://github.com/NativeScript/NativeScript/issues/6708
|
||||||
|
if ((<any>activity).isNativeScriptActivity) {
|
||||||
|
const args = <application.ApplicationEventData>{
|
||||||
|
eventName: application.resumeEvent,
|
||||||
|
object: application.android,
|
||||||
|
android: activity
|
||||||
|
};
|
||||||
|
application.notify(args);
|
||||||
|
application.android.paused = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@profile
|
@profile
|
||||||
public onDestroy(activity: any, superFunc: Function): void {
|
public onDestroy(activity: any, superFunc: Function): void {
|
||||||
if (traceEnabled()) {
|
if (traceEnabled()) {
|
||||||
|
1
tns-core-modules/ui/frame/frame.d.ts
vendored
1
tns-core-modules/ui/frame/frame.d.ts
vendored
@ -415,6 +415,7 @@ export interface AndroidActivityCallbacks {
|
|||||||
onSaveInstanceState(activity: any, outState: any, superFunc: Function): void;
|
onSaveInstanceState(activity: any, outState: any, superFunc: Function): void;
|
||||||
onStart(activity: any, superFunc: Function): void;
|
onStart(activity: any, superFunc: Function): void;
|
||||||
onStop(activity: any, superFunc: Function): void;
|
onStop(activity: any, superFunc: Function): void;
|
||||||
|
onPostResume(activity: any, superFunc: Function): void;
|
||||||
onDestroy(activity: any, superFunc: Function): void;
|
onDestroy(activity: any, superFunc: Function): void;
|
||||||
onBackPressed(activity: any, superFunc: Function): void;
|
onBackPressed(activity: any, superFunc: Function): void;
|
||||||
onRequestPermissionsResult(activity: any, requestCode: number, permissions: Array<String>, grantResults: Array<number>, superFunc: Function): void;
|
onRequestPermissionsResult(activity: any, requestCode: number, permissions: Array<String>, grantResults: Array<number>, superFunc: Function): void;
|
||||||
|
Reference in New Issue
Block a user