今天主要学习了一些关于Activity的内容:
Activity
是一个Android应用程序组件(也称为Android四大组件之一),它提供了一个屏幕,用户可以通过该屏幕进行交互以执行某些操作,例如拨打电话,拍照,发送电子邮件或查看地图。每个活动都有一个窗口,用于绘制其用户界面。窗口通常填满屏幕,但可能比屏幕小,并漂浮在其他窗口的顶部.
Android应用程序通常由多个彼此松散绑定的Activity
组成。通常,应用程序中的一个Activity
被指定为“主要”Activity
,该Activity
在首次启动应用程序时呈现给用户。然后,每个Activity
可以启动另一个Activity
以执行不同的操作。每次新Activity
开始时,前一个Activity
都会停止,但系统会将Activity
保留在后台堆栈中
(“后堆栈”)。当一个新的Activity
开始时,它会被推到后面的堆栈上,并引起用户的注意。后栈遵循基本的“ 后进先出
”堆栈机制,因此,当用户完成当前活动并按下"后退按钮"时,它从堆栈弹出(并销毁),之前的活动恢复。
activity的启动分为两种,一种为入口activity,另一种为其他activity.
启动自建的Activity
Intent intent = new Intent(this, SignInActivity.class); startActivity(intent);
启动其他类型的Activity
Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, recipientArray); startActivity(intent);
但如果我们要从上一个Activity中接受返回数据的话,需要下面的这种启动方式
private void pickContact() { // Create an intent to "pick" a contact, as defined by the content provider URI 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 the request went well (OK) and the request was PICK_CONTACT_REQUEST if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) { // Perform a query to the contact's content provider for the contact's name Cursor cursor = getContentResolver().query(data.getData(), new String[] {Contacts.DISPLAY_NAME}, null, null, null); if (cursor.moveToFirst()) { // True if the cursor is not empty int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME); String name = cursor.getString(columnIndex); // Do something with the selected contact's name... } } }
如何关闭Activity呢? 也很简单
可以通过调用其finish()方
法来关闭活动。还可以关闭之前通过调用启动的单独活动finishActivity()。