Android Study Notes - Activity

An activity is an component that provides a window with which user can interact. The window typically fills the whole screen, or may float on top of other windows.

 

An application usually consists of multiple activities, one as the main activity and can start other activities based on the user actions.

 

The system preserves the activities in a stack("back stack") which abides to the "last in, first out" principle. see Tasks and Back Stack. Activity uses callback methods to respond to changes in state in its lifecycle.

 

Creating an Activity

 

you must create a subclass of Activity, you need to implement callback methods. The most important methods are:

 

  • onCreate
    • invoked when creating your activity. initialize and define the layout for the user interface.
  •  onPause
    • invoked when user is leaving your activity
Implementing a user interface

 

 

The user interface for an activity is provided by a hierarchy of views -- objects derived from the View class. Each view controls a particular rectangular space within the activity's window(i.e. Button)

 

Widgets are views that are visual elements, while Layouts are views derived from ViewGroup that provide a unique layout for its child views.

 

The most common way to define a layout using views is with an XML layout file.


Delcaring the activity in the manifest

 

You must declare your activity in the manifest file making it accessible to the system. The android:name is the only required attribute that specifies the class name of the activity. An activity uses intent-filter to declare how other application may activate it.

 

Starting an Activity

 

You can activate an activity by creating an intent that explicitly defines the activity you want to start:

 

 

Intent intent = new Intent(this, SignInActivity.class);
startActivity(intent);

 

 

If you want to activate an external activity to perform some actions for you, you can create the following intent:

 

 

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);
startActivity(intent);

 

 

sometimes, you want to receive the result from the activity you start, you need to implement the callback method onActivityResult(), then you can get the result in an Intent in your onActivityResult method.

 

 

private void pickContact() {
    Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
    startActivityForResult(intent, PICK_CONTACT_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) {
        Cursor cursor = getContentResolver().query(data.getData()), new String[]{Contacts.DISPLAY_NAME}, null, null, null);
        if (cursor.moveToFirst()) {
            int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
            String name = cursor.getString(columnIndex)
            // do something here
        }
    }
}
 

 

Shutting Down an Activity

 

You can shut down an activity by calling its finish() method, or shut down an activity you previously started by calling finishActivity()

 

Managing the Activity Lifecycle

 

You can manage your activity lifecycle by implementing callback methods. An activity can exists in three states:

 

  • Resumed
    • in foreground of the screen, also referred to as "running"
  • Paused
    • another activity is on top of this one, but it is still visible because the top one is partially transparent or don't cover the entire screen. 
    • A paused activity is still alive but can be killed by the system in extremely low memory situations.
  • Stopped
    • The activity is completely obscured by another activity.
    • A stopped activity is still alive but no longer visible to user and can be killed by the sytem when more memory is needed elsewhere.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值