android 中 intent 是經常要用到的。不管是頁面牽轉,還是傳遞數據,或是調用外部程序,系統功能都要用到 intent。
1.從 google 搜索內容
Intent intent = new Intent();intent.setAction(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"searchString")
startActivity(intent);
2.瀏覽網頁
Uri uri = Uri.parse("http://www.google.com");Intent it = new Intent(Intent.ACTION_VIEW,uri);
startActivity(it);
3.顯示地圖
Uri uri = Uri.parse("geo:38.899533,-77.036476");Intent it = new Intent(Intent.Action_VIEW,uri);
startActivity(it);
4.路徑規劃
Uri uri = Uri.parse("http://maps.google.com/maps?f=dsaddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");
Intent it = new Intent(Intent.ACTION_VIEW,URI);
startActivity(it);
5.撥打電話
Uri uri = Uri.parse("tel:xxxxxx");Intent it = new Intent(Intent.ACTION_DIAL, uri);
startActivity(it);
6.調用發短信的程序
Intent it = new Intent(Intent.ACTION_VIEW);it.putExtra("sms_body", "The SMS text");
it.setType("vnd.android-dir/mms-sms");
startActivity(it);
7.發送短信
Uri uri = Uri.parse("smsto:0800000123");Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "The SMS text");
startActivity(it);
String body="this is sms demo";
Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("smsto", number, null));
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true);
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true);
startActivity(mmsintent);
8.發送彩信
Uri uri = Uri.parse("content://media/external/images/media/23");Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra("sms_body", "some text");
it.putExtra(Intent.EXTRA_STREAM, uri);
it.setType("image/png");
startActivity(it);
StringBuilder sb = new StringBuilder();
sb.append("file://");
sb.append(fd.getAbsoluteFile());
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mmsto", number, null));
// Below extra datas are all optional.
intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT, subject);
intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);
intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI, sb.toString());
intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, composeMode);
intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, exitOnSent);
startActivity(intent);
9.發送 Email
Uri uri = Uri.parse("mailto:[email protected]");Intent it = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(it);
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_EMAIL, "[email protected]");
it.putExtra(Intent.EXTRA_TEXT, "The email body text");
it.setType("text/plain");
startActivity(Intent.createChooser(it, "Choose Email Client"));
Intent it=new Intent(Intent.ACTION_SEND);
String[] tos={"[email protected]"};
String[] ccs={"[email protected]"};
it.putExtra(Intent.EXTRA_EMAIL, tos);
it.putExtra(Intent.EXTRA_CC, ccs);
it.putExtra(Intent.EXTRA_TEXT, "The email body text");
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
it.setType("message/rfc822");
startActivity(Intent.createChooser(it, "Choose Email Client"));
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");
sendIntent.setType("audio/mp3");
startActivity(Intent.createChooser(it, "Choose Email Client"));
10.播放多媒體
Intent it = new Intent(Intent.ACTION_VIEW);Uri uri = Uri.parse("file:///sdcard/song.mp3");
it.setDataAndType(uri, "audio/mp3");
startActivity(it);
Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
11.uninstall apk
Uri uri = Uri.fromParts("package", strPackageName, null);Intent it = new Intent(Intent.ACTION_DELETE, uri);
startActivity(it);
12.install apk
Uri installUri = Uri.fromParts("package", "xxx", null);returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
13. 打開照相機
<1>Intent i = new Intent(Intent.ACTION_CAMERA_BUTTON, null);this.sendBroadcast(i);
<2>long dateTaken = System.currentTimeMillis();
String name = createName(dateTaken) + ".jpg";
fileName = folder + name;
ContentValues values = new ContentValues();
values.put(Images.Media.TITLE, fileName);
values.put("_data", fileName);
values.put(Images.Media.PICASA_ID, fileName);
values.put(Images.Media.DISPLAY_NAME, fileName);
values.put(Images.Media.DESCRIPTION, fileName);
values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileName);
Uri photoUri = getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent inttPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(inttPhoto, 10);
14.從 gallery 選取圖片
Intent i = new Intent();i.setType("image/*");
i.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(i, 11);
15. 打開錄音機
Intent mi = new Intent(Media.RECORD_SOUND_ACTION);startActivity(mi);
16.顯示應用詳細列表
Uri uri = Uri.parse("market://details?id=app_id");Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
//where app_id is the application ID, find the ID
//by clicking on your application on Market home
//page, and notice the ID from the address bar
剛纔找 app id 未果,結果發現用 package name 也可以
Uri uri = Uri.parse("market://details?id=<packagename>");
這個簡單多了
17 尋找應用
Uri uri = Uri.parse("market://search?q=pname:pkg_name");Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
//where pkg_name is the full package path for an application
18 打開聯繫人列表
<1>Intent i = new Intent();
i.setAction(Intent.ACTION_GET_CONTENT);
i.setType("vnd.android.cursor.item/phone");
startActivityForResult(i, REQUEST_TEXT);
<2>
Uri uri = Uri.parse("content://contacts/people");
Intent it = new Intent(Intent.ACTION_PICK, uri);
startActivityForResult(it, REQUEST_TEXT);
19 打開另一程序
Intent i = new Intent();ComponentName cn = new ComponentName("com.yellowbook.android2",
"com.yellowbook.android2.AndroidSearch");
i.setComponent(cn);
i.setAction("android.intent.action.MAIN");
startActivityForResult(i, RESULT_OK);
20.調用系統編輯添加聯繫人(高版本 SDK 有效):
Intent it = new Intent(Intent.ACTION_INSERT_OR_EDIT);it.setType("vnd.android.cursor.item/contact");
// it.setType(Contacts.CONTENT_ITEM_TYPE);
it.putExtra("name", "myName");
it.putExtra(android.provider.Contacts.Intents.Insert.COMPANY, "organization");
it.putExtra(android.provider.Contacts.Intents.Insert.EMAIL, "email");
it.putExtra(android.provider.Contacts.Intents.Insert.PHONE,"homePhone");
it.putExtra( android.provider.Contacts.Intents.Insert.SECONDARY_PHONE,
"mobilePhone");
it.putExtra( android.provider.Contacts.Intents.Insert.TERTIARY_PHONE,
"workPhone");
it.putExtra(android.provider.Contacts.Intents.Insert.JOB_TITLE,"title");
startActivity(it);
21.調用系統編輯添加聯繫人(全有效):
Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);intent.setType(People.CONTENT_ITEM_TYPE);
intent.putExtra(Contacts.Intents.Insert.NAME, "My Name");
intent.putExtra(Contacts.Intents.Insert.PHONE, "+1234567890");
intent.putExtra(Contacts.Intents.Insert.PHONE_TYPE,
Contacts.PhonesColumns.TYPE_MOBILE);
intent.putExtra(Contacts.Intents.Insert.EMAIL, "[email protected]");
intent.putExtra(Contacts.Intents.Insert.EMAIL_TYPE,
Contacts.ContactMethodsColumns.TYPE_WORK);
startActivity(intent);
22(更新)
//直接打電話出去Uri uri = Uri.parse("tel:0800000123");
Intent it = new Intent(Intent.ACTION_CALL, uri);
startActivity(it);
//用這個,要在 AndroidManifest.xml 中,加上
//<uses-permission id="android.permission.CALL_PHONE" />
23.最基本的 share 信息的 intent,可以傳一段 text 信息到各個手機上已安裝程序:如
SMS,Email,sina 微波,米聊,facebook,twitter 等等Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_TEXT, "The email subject text");
it.setType("text/plain");
startActivity(Intent.createChooser(it, "Choose Email Client"));
24.調用 skype 的 intent
方法 1:老版,新版不可用,可能是因爲 skype 的 activity 結構變動://
Intent sky = new Intent("android.intent.action.CALL_PRIVILEGED");
sky.setClassName("com.skype.raider",
"com.skype.raider.contactsync.ContactSkypeOutCallStartActivity");
sky.setData(Uri.parse("tel:" + phone));
startActivity(sky);
方法 2:打開到 skype 的 main page:
//
PackageManager packageManager = getActivity().getPackageManager();
Intent skype = packageManager.getLaunchIntentForPackage("com.skype.raider");
skype.setData(Uri.parse("tel:65465446"));
startActivity(skype);
方法 3:傳入號碼,直接進入 skype 撥號畫面並打電話:
Intent intent = new Intent("android.intent.action.CALL_PRIVILEGED");
intent.setClassName("com.skype.raider",
"com.skype.raider.Main");
intent.setData(Uri.parse("tel:" + phone));
startActivity(intent);
一些常用的Intent:
Uri | Action | 功能 | 備註 |
---|---|---|---|
geo:latitude,longitude | Intent.ACTION_VIEW | 打開地圖應用程序並顯示指定的經緯度 | |
geo:0,0?q=street+address | Intent.ACTION_VIEW | 打開地圖應用程序並顯示指定的地址 | |
http://web_address | Intent.ACTION_VIEW | 打開瀏覽器程序並顯示指定的URL | |
https://web_address | Intent.ACTION_VIEW | 打開瀏覽器程序並顯示指定的URL | |
tel:phone_number | Intent.ACTION_CALL | 打開電話應用程序並撥打指定的電話號碼 | |
tel:phone_number | Intent.ACTION_DIAL | 打開電話應用程序並撥下指定的電話號碼 | |
voicemail: | Intent.ACTION_DIAL | 打開電話應用程序並撥下指定語音郵箱的電話號碼 | |
plain_text | Intent.ACTION_WEB_SEARCH | 打開瀏覽器程序並使用Google搜索引擎搜索 |
活動:
Intent | 說明 | Action |
---|---|---|
CALL_ACTION | 撥打電話,被呼叫的聯繫人在數據中指定。 | android.intent.action.CALL |
EMERGENCY_DIAL_ACTION | 撥打緊急電話號碼。 | android.intent.action.EMERGENCY_DIAL |
DIAL_ACTION | 撥打數據中指定的電話號碼。 | android.intent.action.DIAL |
ANSWER_ACTION | 處理撥入的電話。 | android.intent.action.ANSWER |
DELETE_ACTION | 從容器中刪除給定的數據。 | android.intent.action.DELETE |
PICK_ACTION | 從數據中選擇一個項目 (item),將被選中的項目返回。 | android.intent.action.PICK |
DEFAULT_ACTION | 和 VIEW_ACTION 相同,是在數據上執行的標準動作。 | android.intent.action.VIEW |
LOGIN_ACTION | 獲取登錄憑證。 | android.intent.action.LOGIN |
ALL_APPS_ACTION | 列舉所有可用的應用。 | android.intent.action.ALL_APPS |
CLEAR_CREDENTIALS_ACTION | 清除登陸憑證 (credential)。 | android.intent.action.CLEAR_CREDENTIALS |
GET_CONTENT_ACTION | 讓用戶選擇數據並返回。 | android.intent.action.GET_CONTENT |
EDIT_ACTION | 爲制定的數據顯示可編輯界面。 | android.intent.action.EDIT |
BUG_REPORT_ACTION | 顯示 activity 報告錯誤。 | android.intent.action.BUG_REPORT |
SETTINGS_ACTION | 顯示系統設置。輸入:無。 | android.intent.action.SETTINGS |
WALLPAPER_SETTINGS_ACTION | 顯示選擇牆紙的設置界面。輸入:無。 | android.intent.action.WALLPAPER_SETTINGS |
SENDTO_ACTION | 向 data 指定的接收者發送一個消息。 | android.intent.action.SENDTO |
VIEW_ACTION | 向用戶顯示數據。 | android.intent.action.VIEW |
PICK_ACTIVITY_ACTION | 選擇一個 activity,返回被選擇的 activity 的類(名)。 | android.intent.action.PICK_ACTIVITY |
RUN_ACTION | 運行數據(指定的應用),無論它(應用)是什麼。 | android.intent.action.RUN |
INSERT_ACTION | 在容器中插入一個空項 (item)。 | android.intent.action.INSERT |
ADD_SHORTCUT_ACTION | 在系統中添加一個快捷方式。. | android.intent.action.ADD_SHORTCUT |
WEB_SEARCH_ACTION | 執行 web 搜索。 | android.intent.action.WEB_SEARCH |
SYNC_ACTION | 執行數據同步。 | android.intent.action.SYNC |
MAIN_ACTION | 作爲主入口點啓動,不需要數據。 | android.intent.action.MAI |
Intent | 說明 | Action |
---|---|---|
LABEL_EXTRA | 大寫字母開頭的字符標籤,和 ADD_SHORTCUT_ACTION 一起使用。 | android.intent.extra.LABEL |
INTENT_EXTRA | 和 PICK_ACTIVITY_ACTION 一起使用時,說明用戶選擇的用來顯示的 activity;和 ADD_SHORTCUT_ACTION 一起使用的時候,描述要添加的快捷方式。 | android.intent.extra.INTENT |
TEMPLATE_EXTRA | 新記錄的初始化模板。 | android.intent.extra.TEMPLATE |
Intent | 說明 | Action |
---|---|---|
XMPP_DISCONNECTED_ACTION | XMPP 連接已經被斷開。 | android.intent.action.XMPP_DI |
XMPP_CONNECTED_ACTION | XMPP 連接已經被建立。 | android.intent.action.XMPP_CONNECTED |
BATTERY_CHANGED_ACTION | 充電狀態,或者電池的電量發生變化。 | android.intent.action.BATTERY_CHANGED |
TIME_TICK_ACTION | 當前時間已經變化(正常的時間流逝)。 | android.intent.action.TIME_TICK |
DATA_ACTIVITY_STATE_CHANGED_ACTION | 電話的數據活動(data activity)狀態(即收發數據的狀態)已經改變。 | android.intent.action.DATA_ACTIVITY |
DATA_CONNECTION_STATE_CHANGED_ACTION | 電話的數據連接狀態已經改變。 | android.intent.action.DATA_STATE |
MESSAGE_WAITING_STATE_CHANGED_ACTION | 電話的消息等待(語音郵件)狀態已經改變。 | android.intent.action.MWI |
SIGNAL_STRENGTH_CHANGED_ACTION | 電話的信號強度已經改變。 | android.intent.action.SIG_STR |
SERVICE_STATE_CHANGED_ACTION | 電話服務的狀態已經改變。 | android.intent.action.SERVICE_STATE |
PHONE_STATE_CHANGED_ACTION | 電話狀態已經改變。 | android.intent.action.PHONE_STATE |
PROVIDER_CHANGED_ACTION | 更新將要(真正)被安裝。 | android.intent.action.PROVIDER_CHANGED |
FOTA_INSTALL_ACTION | 更新已經被確認,馬上就要開始安裝。 | android.server.checkin.FOTA_INSTALL |
FOTA_READY_ACTION | 更新已經被下載,可以開始安裝。 | android.server.checkin.FOTA_READY |
FOTA_RESTART_ACTION | 恢復已經停止的更新下載。 | android.server.checkin.FOTA_RESTART |
MEDIA_SCANNER_STARTED_ACTION | 開始掃描介質的一個目錄。 | android.intent.action.MEDIA_SCANNER_STARTED |
MEDIA_BAD_REMOVAL_ACTION | 擴展介質(擴展卡)已經從 SD 卡插槽拔出,但是掛載點 (mount point) 還沒解除 (unmount)。 | android.intent.action.MEDIA_BAD_REMOVAL |
MEDIA_MOUNTED_ACTION | 擴展介質被插入,而且已經被掛載。 | android.intent.action.MEDIA_MOUNTED |
MEDIA_REMOVED_ACTION | 擴展介質被移除。 | android.intent.action.MEDIA_REMOVED |
MEDIA_UNMOUNTED_ACTION | 擴展介質存在,但是還沒有被掛載 (mount)。 | android.intent.action.MEDIA_UNMOUNTED |
MEDIA_SHARED_ACTION | 擴展介質的掛載被解除 (unmount),因爲它已經作爲 USB 大容量存儲被共享。 | android.intent.action.MEDIA_SHARED |
SCREEN_OFF_ACTION | 屏幕被關閉。 | android.intent.action.SCREEN_OFF |
SCREEN_ON_ACTION | 屏幕已經被打開。 | android.intent.action.SCREEN_ON |
FOTA_CANCEL_ACTION | 取消所有被掛起的 (pending) 更新下載。 | android.server.checkin.FOTA_CANCEL |
DATE_CHANGED_ACTION | 日期被改變。 | android.intent.action.DATE_CHANGED |
UMS_DISCONNECTED_ACTION | 設備從 USB 大容量存儲模式退出。 | android.intent.action.UMS_DISCONNECTED |
CONFIGURATION_CHANGED_ACTION | 設備的配置信息已經改變,參見 Resources.Configuration. | android.intent.action.CONFIGURATION_CHANGED |
UMS_CONNECTED_ACTION | 設備進入 USB 大容量存儲模式。 | android.intent.action.UMS_CONNECTED |
PACKAGE_REMOVED_ACTION | 設備上刪除了一個應用程序包。 | android.intent.action.PACKAGE_REMOVED |
PACKAGE_ADDED_ACTION | 設備上新安裝了一個應用程序包。 | android.intent.action.PACKAGE_ADDED |
NETWORK_TICKLE_RECEIVED_ACTION | 設備收到了新的網絡 “tickle” 通知。 | android.intent.action.NETWORK_TICKLE_RECEIVED |
TIME_CHANGED_ACTION | 時間已經改變(重新設置)。 | android.intent.action.TIME_SET |
TIMEZONE_CHANGED_ACTION | 時區已經改變。 | android.intent.action.TIMEZONE_CHANGED |
FOTA_UPDATE_ACTION | 通過 OTA 下載並安裝操作系統更新。 | android.server.checkin.FOTA_UPDATE |
STATISTICS_STATE_CHANGED_ACTION | 統計信息服務的狀態已經改變。 | android.intent.action.STATISTICS_STATE_CHANGED |
WALLPAPER_CHANGED_ACTION | 系統的牆紙已經改變。 | android.intent.action.WALLPAPER_CHANGED |
PROVISIONING_CHECK_ACTION | 要求 polling of provisioning service 下載最新的設置。 | android.intent.action.PROVISIONING_CHECK |
STATISTICS_REPORT_ACTION | 要求 receivers 報告自己的統計信息。 | android.intent.action.STATISTICS_REPORT |
MEDIA_SCANNER_FINISHED_ACTION | 已經掃描完介質的一個目錄。 | android.intent.action.MEDIA_SCANNER_FINISHED |
MEDIABUTTON_ACTION | 用戶按下了“Media Button”。 | android.intent.action.MEDIABUTTON |
MEDIA_EJECT_ACTION | 用戶想要移除擴展介質(拔掉擴展卡)。 | android.intent.action.MEDIA_EJECT |
CALL_FORWARDING_STATE_CHANGED_ACTION | 語音電話的呼叫轉移狀態已經改變。 | android.intent.action.CFF |
BOOT_COMPLETED_ACTION | 在系統啓動後,這個動作被廣播一次(只有一次)。 | android.intent.action.BOOT_COMPLETED |
Intent | 說明 | Action |
---|---|---|
LAUNCHER_CATEGORY | Activity 應該被顯示在頂級的 launcher 中。 | android.intent.category.LAUNCHER |
PREFERENCE_CATEGORY | activity是一個設置面板 (preference panel)。 | android.intent.category.PREFERENCE |
SAMPLE_CODE_CATEGORY | To be used as an sample code example (not part of the normal user experience). | android.intent.category.SAMPLE_CODE |
FRAMEWORK_INSTRUMENTATION_TEST_CATEGORY | To be used as code under test for framework instrumentation tests. | android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST |
SELECTED_ALTERNATIVE_CATEGORY | 對於被用戶選中的數據,activity 是它的一個可選操作。 | android.intent.category.SELECTED_ALTERNATIVE |
BROWSABLE_CATEGORY | 能夠被瀏覽器安全使用的 activities 必須支持這個類別。 | android.intent.category.BROWSABLE |
EMBED_CATEGORY | 能夠在上級(父)activity 中運行。 | android.intent.category.EMBED |
DEFAULT_CATEGORY | 如果 activity 是對數據執行確省動作(點擊, center press)的一個選項,需要設置這個類別。 | android.intent.category.DEFAULT |
DEVELOPMENT_PREFERENCE_CATEGORY | 說明 activity 是一個設置面板 (development preference panel). | android.intent.category.DEVELOPMENT_PREFERENCE |
ALTERNATIVE_CATEGORY | 說明 activity 是用戶正在瀏覽的數據的一個可選操作。 | android.intent.category.ALTERNATIVE |
UNIT_TEST_CATEGORY | 應該被用作單元測試(通過 test harness 運行)。 | android.intent.category.UNIT_TEST |
GADGET_CATEGORY | 這個 activity 可以被嵌入宿主 activity (activity that is hosting gadgets)。 | android.intent.category.GADGET |
WALLPAPER_CATEGORY | 這個 activity 能過爲設備設置牆紙。 | android.intent.category.WALLPAPER |
TAB_CATEGORY | 這個 activity 應該在 TabActivity 中作爲一個 tab 使用。 | android.intent.category.TAB |
HOME_CATEGORY | 主屏幕 (activity),設備啓動後顯示的第一個 activity。 | android.intent.category.HOME |
TEST_CATEGORY | 作爲測試目的使用,不是正常的用戶體驗的一部分。 | android.intent.category.TEST |
標誌 | 描述 | 值 |
---|---|---|
MULTIPLE_TASK_LAUNCH | 和 NEW_TASK_LAUNCH 聯合使用,禁止將已有的任務改變爲前景任務 (foreground)。 | 8 0x00000008 |
FORWARD_RESULT_LAUNCH | 如果這個標記被設置,而且被一個已經存在的 activity 用來啓動新的 activity,已有 activity 的回覆目標 (reply target) 會被轉移給新的 activity。 | 16 0x00000010 |
NEW_TASK_LAUNCH | 設置以後,activity 將成爲歷史堆棧中的第一個新任務(棧頂)。 | 4 0x00000004 |
SINGLE_TOP_LAUNCH | 設置以後,如果 activity 已經啓動,而且位於歷史堆棧的頂端,將不再啓動(不重新啓動) activity。 | 2 0x00000002 |
NO_HISTORY_LAUNCH | 設置以後,新的 activity 不會被保存在歷史堆棧中。 | 1 0x00000001 |