色综合天天_bl高肉强受失禁尿出来v文_日处女视频_在线观看国产剧情麻豆精品

十三年專注于網站建設與互聯網應用開發,低調、有情懷的網絡應用服務商!
南昌百恒科技微信公眾號 掃一掃關注
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒科技微信公眾號

如何在運行時創建顯式intent

百恒網絡 2018-08-24 14:57:30 2713
? ? ? ?開發人員都知道,使用隱式intent可以獲取目標activity并以列表的形式展示。而如果想要實現用戶點擊任一列表項時,啟動對應的activity,那我們就需要使用顯式intent來啟動activity。要創建啟動activity的顯式intent,則需要從ResolveInfo對象中獲取activity的包名與類名。這些信息可以從ResolveInfo對象的ActivityInfo中獲取。

? ? ? ?更新ActivityHolder類實施一個點擊看聽器。然后,使用ActivityInfo對象中的數據信息,創建一個顯式intent并啟動目標activity,如下代碼所示。

? ? ? ?啟動目標activity(NerdLauncherFragment.java)
? ? ? ?...
? ? ? ?private class ActivityHolder extends RecyclerView.ViewHolder
? ? ? ?implements View.OnClickListener {
? ? ? ?private ResolveInfo mResolveInfo;
? ? ? ?private TextView mNameTextView;?
? ? ? ?public ActivityHolder(View itemView) {
? ? ? ?super(itemView);
? ? ? ?mNameTextView = (TextView) itemView;
? ? ? ?mNameTextView.setOnClickListener(this);
? ? ? ?}
? ? ? ?public void bindActivity(ResolveInfo resolveInfo) {
? ? ? ?...
? ? ? ?}
? ? ? ?@Override
? ? ? ?public void onClick(View v) {
? ? ? ?ActivityInfo activityInfo = mResolveInfo.activityInfo;
Intent i = new Intent(Intent.ACTION_MAIN)
? ? ? ?.setClassName(activityInfo.applicationInfo.packageName,
? ? ? ?activityInfo.name);
? ? ? ?startActivity(i);
? ? ? ?}
? ? ? ?}

? ? ? ?從以上代碼可以看到,作為顯式intent的一部分,我們還發送了ACTION_MAIN操作。發送的intent是否包含操作,對于大多數應用來說沒有什么差別。不過,有些應用的啟動行為可能會有所不同。取決于不同的啟動要求,同樣的activity可能會顯示不同的用戶界面。建議南昌APP開發時先明確啟動意圖,以便讓activity完成它應該完成的任務。

? ? ? ?在以上代碼中,使用包名和類名創建顯式intent時,我們使用了以下Intent方法:

? ? ? ?public Intent setClassName(String packageName, String className)
? ? ? ?這不同于以往創建顯式intent的方式。之前,我們使用的是接受Context和Class對象的Intent構造方法:
? ? ? ?public Intent(Context packageContext, Class cls)

? ? ? ?該構造方法使用傳入的參數來獲取Intent需要的ComponentName。ComponentName由包名和類名共同組成。傳入Activity和Class創建Intent時,構造方法會通過Activity類自行確定全路徑包名。

? ? ? ?也可以自己通過包名和類名創建ComponentName,然后使用下面的Intent方法創建顯式intent:
? ? ? ?public Intent setComponent(ComponentName component)

? ? ? ?不過,setClassName(...)方法能夠自動創建組件名,所以使用該方法需要的實現代碼相對較少。運行NerdLauncher應用并嘗試啟動一些應用。
400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
備案專線 備案專線
 
售后服務 售后服務
 
×