### android activity test steps 1. create a new nativescript project ```bash tns create nativescript_activity --template tns-template-blank-ts cd nativescript_activity ``` 1. update package.json and install ```bash npm update npm install ``` 1. add android platform ```bash tns platform add android ``` 1. add the [extended activity](https://docs.nativescript.org/core-concepts/android-runtime/advanced-topics/extend-application-activity#extending-activity). activity.android.ts ```ts import {setActivityCallbacks, AndroidActivityCallbacks} from "tns-core-modules/ui/frame"; @JavaProxy("org.myApp.MainActivity") class Activity extends android.support.v7.app.AppCompatActivity { private _callbacks: AndroidActivityCallbacks; public onCreate(savedInstanceState: android.os.Bundle): void { if (!this._callbacks) { setActivityCallbacks(this); } this._callbacks.onCreate(this, savedInstanceState, super.onCreate); } public onSaveInstanceState(outState: android.os.Bundle): void { this._callbacks.onSaveInstanceState(this, outState, super.onSaveInstanceState); } public onStart(): void { this._callbacks.onStart(this, super.onStart); } public onStop(): void { this._callbacks.onStop(this, super.onStop); } public onDestroy(): void { this._callbacks.onDestroy(this, super.onDestroy); } public onBackPressed(): void { this._callbacks.onBackPressed(this, super.onBackPressed); } public onRequestPermissionsResult(requestCode: number, permissions: Array, grantResults: Array): void { this._callbacks.onRequestPermissionsResult(this, requestCode, permissions, grantResults, undefined /*TODO: Enable if needed*/); } public onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void { this._callbacks.onActivityResult(this, requestCode, resultCode, data, super.onActivityResult); } } ``` update webpack.config.js webpack.config.js ```diff @@ -14,6 +14,7 @@ module.exports = env => { const appComponents = [ "tns-core-modules/ui/frame", "tns-core-modules/ui/frame/activity", + resolve(__dirname, "app/activity.android.ts"), ]; const platform = env && (env.android && "android" || env.ios && "ios"); ``` *** 1. add android activity functions. ```ts public readonly MY_PERMISSION_REQUEST = 100; public onCreate(savedInstanceState: android.os.Bundle): void { if (!this._callbacks) { setActivityCallbacks(this); } this._callbacks.onCreate(this, savedInstanceState, super.onCreate); let intent: android.content.Intent = new android.content.Intent( ( android.provider.Settings ).ACTION_HOME_SETTINGS ); let activity = app.android.foregroundActivity || app.android.startActivity; // TODO: test android activity functions. // activity.startActivityForResult( intent, this.MY_PERMISSION_REQUEST ); } ``` 1. run nativescript android app ```bash tns run android ``` *** error when adding this line. ```bash activity.startActivityForResult( intent, this.MY_PERMISSION_REQUEST ); ```