日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android intent 跳转卡顿_Intent七大属性

發布時間:2024/1/23 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android intent 跳转卡顿_Intent七大属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、ComponentName:組件名,用于顯示跳轉

啟動方式:

Intent intent =new Intent(); ComponentName component=new ComponentName(this, TwoActivity.class); intent.setComponent(component); startActivity(intent);

等價于:

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

等價于:

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

等價于:

Intent intent =new Intent();

//顯式跳轉到其他應用的界面的話,如果這個界面注冊了intent-filter的話,就不需要設置exported屬性,如果沒有注冊過intent-filter,需要將exported屬性設置為true,否則會出現權限異常,,可實現從本程序中啟動其它程序的Activity

intent.setClassName(this,"com.1000phone.activity.TestActivity"); startActivity(intent);

二、Action、Category 屬性與intent-filter配置:

1、action屬性:Intent通過定義Action屬性(其實就是定義一段自定義的字符串),這樣就可以把Intent與具體的某個Activity分離。

常用Action屬性常量:

ACTION_MAIN:(android.intent.action.MAIN)Android程序入口。每個Android應用必須且只能包含一個此類型的Action聲明?!救绻O置多個,則哪個在前,執行哪個?!?/p>

ACTION_VIEW: (android.intent.action.VIEW) 顯示指定數據。

ACTION_EDIT: (android.intent.action.EDIT) 編輯指定數據。

ACTION_DIAL: (android.intent.action.DIAL) 顯示撥號面板。

ACTION_CALL: (android.intent.action.CALL) 直接呼叫Data中所帶的號碼。

ACTION_ANSWER: (android.intent.action.ANSWER) 接聽來電。

ACTION_SEND: (android.intent.action.SEND) 向其他人發送數據(例如:彩信/email)。

ACTION_SENDTO: (android.intent.action.SENDTO) 向其他人發送短信。

ACTION_SEARCH: (android.intent.action.SEARCH) 執行搜索。

ACTION_GET_CONTENT:(android.intent.action.GET_CONTENT) 讓用戶選擇數據,并返回所選數據。

2、category屬性:提供將要執行的action的額外信息,一般在隱式地啟動activity時需要用到

常見的category如下:

CATEGORY_APP_BROWSER 和ACTION_MAIN一起使用,用來啟動瀏覽器應用程序

CATEGORY_APP_CALCULATOR 和ACTION_MAIN一起使用,用來啟動計算器應用程序

CATEGORY_APP_CALENDAR 和ACTION_MAIN一起使用,用來啟動日歷應用程序

CATEGORY_APP_CONTACTS 和ACTION_MAIN一起使用,用來啟動聯系人應用程序

CATEGORY_APP_EMAIL 和ACTION_MAIN一起使用,用來啟動郵件應用程序

CATEGORY_APP_GALLERY 和ACTION_MAIN一起使用,用來啟動圖庫應用程序

CATEGORY_APP_MAPS 和ACTION_MAIN一起使用,用來啟動地圖應用程序

CATEGORY_APP_MESSAGING 和ACTION_MAIN一起使用,用來啟動短信應用程序

CATEGORY_APP_MUSIC 和ACTION_MAIN一起使用,用來啟動音樂應用程序

CATEGORY_BROWSABLE 能夠被瀏覽器安全調用的activity必須支持這個category

CATEGORY_DEFAULT Android默認的執行方式,按照普通的Action方式執行。

CATEGORY_HOME 主activity,當Android程序啟動時,它是第一個顯示的

//android的home界面一般是主屏幕

CATEGORY_LAUNCHER 點擊桌面圖標時出現在最上面,默認啟動Activity

示例代碼:

三、Data屬性

1.Data的功能:

用于添加數據。通常是啟動某個系統程序或其他程序,帶給此程序的信息。Data屬性通常用于向Action屬性提供操作的數據。Data屬性的值是個Uri對象。

Uri的格式如下:scheme://host:port /path http://127.0.0.1:8080/webtest/

2.系統內置的data屬性常量:

tel:// //可以省略 號碼數據格式,后跟電話號碼。

smsto: 不能加// 短息數據格式,后跟短信接收號碼。

content:// 內容數據格式,后跟需要讀取的內容。----Content Provider

file:// 文件數據格式,后跟文件路徑。

1.瀏覽網頁

Uri uri = Uri.parse("https://www.baidu.com");//瀏覽器 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(uri); startActivity(intent);

2.撥打電話

Uri uri = Uri.parse("tel:xxxxxx"); Intent it = new Intent(Intent.ACTION_DIAL, uri); startActivity(it); <uses-permission android:name="android.permission.CALL_PHONE" /> //加權限 Uri uri = Uri.parse("tel:110"); Intent intent = new Intent(Intent.ACTION_CALL, uri); startActivity(intent);

3.調用發短信的程序

Uri smsToUri = Uri.parse("smsto:10000"); Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri); intent.putExtra("sms_body", smsBody); startActivity(intent);

四、Type屬性

1.功能:

Type屬性用于指定Data所指定的Uri對應的MIME類型。MIME只要符合“abc /xyz”這樣的字符串格式即可。

2.Intent利用Action、Data和Type屬性啟動Android系統內置組件的代碼:

查看圖片:

播放音頻:

五、Extra屬性

1.功能:

通過intent.putExtra(鍵, 值)的形式在多個Activity之間進行數據交換。

2.Intent 利用Action、Data和Type、Extra屬性啟動Android系統內置組件的代碼:

調用發送短信的程序

Intent intent = new Intent(); intent.setAction(Intent.ACTION_SENDTO); Uri uri = Uri.parse("smsto:13343333433"); intent.setData(uri); intent.putExtra("sms_body", "已經編輯好的短信內容...."); startActivity(intent);

六、Flags屬性

Intent 可調用addFlags()方法來為Intent 添加控制標記。

1 、FLAG_ ACTIVITY_CLEAR_TOP:(效果同Activity LaunchMode的singleTask)

B的啟動設置了flag A B C B B -->A

如果在棧中已經有該Activity的實例,就重用該實例。重用時,會讓該實例回到棧頂,因此在它上面的實例將會被移除棧。如果棧中不存在該實例,將會創建新的實例放入棧中。

2 、FLAG_ACTIVITY_SINGLE_TOP:(效果同Activity L aunchMode的singleTop)

如果在任務的棧頂正好存在該Activity的實例, 就重用該實例,而不會創建新的Activity 對象。

A B C B B C C->B->C->B->A

3、FLAG_ACTIVITY_NEW_TASK 當在service或者BroadcastReceiver中啟動一個Activity時調需要添加這個flag。區別singleInstace 相同點是都是存在單獨的任務棧中,但是singleInstace 是保證設置的activity只有一個實例,FLAG_ACTIVITY_NEW_TASK 不保證啟動的activity是只有一個實例的 有可能在同一個task中有多個實例

4、FLAG_ACTIVITY_NO_ANIATION :控制啟動Activity時不使用過渡動畫

5、FLAG_ACTIVITY_NO_HISTORY:控制被啟動的Activity將不會保留在Activity棧中。只要有新界面啟動,該FLAG_ACTIVITY_NO_HISTORY的activity就會被清除

A B C B C C-> C-> A

6.uninstall apk

Uri uri = Uri.fromParts("package", strPackageName, null); Intent it = new Intent(Intent.ACTION_DELETE, uri); startActivity(it);

7.install apk

//點擊安裝apk

public void install(View view){//獲取 ui.apk路徑//獲取Sdcard路徑:/mnt/shell/exzdgfd/0String path=Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+"ui.apk";//安裝apkinstallApk(path); } /*** 安裝apk* * @param url*/ private void installApk(String apkFilePath) {File apkfile = new File(apkFilePath);if (!apkfile.exists()) {return;}Intent i = new Intent(Intent.ACTION_VIEW);i.setDataAndType(Uri.parse("file://" + apkFilePath),"application/vnd.android.package-archive");startActivity(i); }

8.啟動Home界面

Intent mIntent = new Intent(Intent.ACTION_MAIN);mIntent.addCategory(Intent.CATEGORY_HOME);startActivity(mIntent);

總結

以上是生活随笔為你收集整理的android intent 跳转卡顿_Intent七大属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。