====== App Events ======
There are a few functions that are triggered when certain system events occur.
They are
^ Function ^ Called when ^
| OnStart() | application is created |
| OnMenu( name ) | user selects a menu item |
| OnBack() | the back key is pressed but only if it follows app.EnableBackKey( false ); |
| OnPause() | application is paused. (eg. When user switches to home screen) |
| OnResume() | application is resumed. (eg. When user returns from home screen) |
| OnConfig() | configuration changes. (eg. When user rotates phone) |
| OnAlarm() | an alarm previously set by app.SetAlarm() is triggered |
| OnData() | data sent by Android Intents |
The code of the sample that is bundled with DroidScript is reproduced below without permission. Hope you don't mind, guys.
//Called when application is created.
function OnStart()
{
app.ShowPopup( "OnStart" );
app.SetMenu( "MyMenu1,MyMenu2" );
app.EnableBackKey( false );
//Get current time in milliseconds.
var now = new Date().getTime();
//Set alarm for 3 seconds time.
app.SetAlarm( "Set", 1234, OnAlarm, now + 3000 ); }
//Called when user selects a menu item.
function OnMenu( name )
{
app.ShowPopup( "OnMenu( " + name + " )" );
}
//Called when the back key is pressed.
function OnBack()
{
alert( "OnBack" );
app.Exit();
}
//Called when application is paused.
//(eg. When user switches to home screen)
function OnPause()
{
app.ShowPopup( "OnPause" );
}
//Called when application is resumed.
//(eg. When user returns from home screen)
function OnResume()
{
app.ShowPopup( "OnResume" );
}
//Called when configuration changes.
//(eg. When user rotates phone)
function OnConfig()
{
app.ShowPopup( "OnConfig" );
}
//Called when alarm is triggered.
//(Even if your app is closed)
function OnAlarm( id )
{
app.ShowPopup( "Got Alarm: id = " + id );
}
//Handle data sent from other apps.
function OnData( isStartUp )
{
//Display intent data.
var intent = app.GetIntent();
if( intent )
{
//Extract main data.
var s = "action: " + intent.action + "\n";
s += "type: " + intent.type + "\n";
s += "data: " + intent.data + "\n\n";
//Extract extras.
s += "extras:\n";
for( var key in intent.extras )
s += key+": "+intent.extras[key] + "\n";
app.Alert( s, "OnData" );
}
}
=====OnConfig=====
The following code can be useful if you want to change the layout in the OnConfig event.
//Called when application is started.
function OnStart()
{
//Create a layout with objects vertically centered.
lay = app.CreateLayout( "linear", "VCenter,FillXY" );
var test = app.GetOrientation();
var hv = "Vertical";
if( test=="Landscape") hv= "Horizontal";
lay.SetOrientation( hv );
txt = app.CreateText( "Hello " );
txt.SetTextSize( 64);
lay.AddChild( txt );
txt1 = app.CreateText( "Goodbye" );
txt1.SetTextSize( 64 );
lay.AddChild( txt1 );
app.AddLayout( lay );
}
//Called when screen rotates
function OnConfig()
{
var test = app.GetOrientation();
var hv = "Vertical";
if( test=="Landscape") hv= "Horizontal";
lay.SetOrientation( hv );
}