1. 四大組件
Android系統四大組件分別是活動(Activity),服務(Service),廣播接收器(Broadcast Receiver),內容提供器(Content Provider),
2. 關于專案結構
AndroidManifest.xml對整個專案的組態檔,可以在里面添加權限宣告,
build.gradle檔案是基于Groovy的領域特定語言(DSL)來宣告專案設定,摒棄了傳統基于XML的各種繁瑣配置,
drawable開頭的檔案夾用來存放圖片,
mipmap開頭的檔案夾用來存放應用圖示,
value開頭的檔案夾用來存放字串,樣式,顏色等配置的,
layout檔案夾用來存放布局,
3. Intent
Intent是Android程式中各組件之間進行互動的一種重要方式,它不僅可以指明當前組件想要執行的動作,還可以在不同組件之間傳遞資料,Intent一般可以被用于啟動活動,啟動服務以及發送廣播等場景,
Intent分為顯式Intent和隱式Intent,
顯式Intent的示例代碼:
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
startActivity(Intent);
隱式Intent示例代碼:
在AndroidManifest.xml中添加代碼
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
修改FirstActivity中按鈕的點擊事件
Intent intent=new Intent("com.example.activitytest.ACTION_START");
startActivity(Intent);
每個Intent中只能指定一個action,但能指定多個category,
在AndroidManifest.xml中添加代碼
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="com.example.activitytest.MY_CATEGORY"/>
</intent-filter>
修改FirstActivity中按鈕的點擊事件
Intent intent=new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(Intent);
更多隱式Intent的用法
Intent intent=new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(Intent);
在AndroidManifest.xml修改注冊資訊
<intent-filter>
<action android:name="android.intent.cation.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="http"/>
</intent-filter>
向下一個活動傳遞資料
String data="HHHHHH"
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data",data);
startActivity(Intent);
在SecondActivity中將傳遞的資料取出
Intent intent=getIntent();
String data=intent.getStringExtra("extra_data");
Log.d("SecondActivity",data);
回傳資料給上一個活動,startActivityForResult()方法啟動SecondActivity,后面跟一個請求碼,這里傳入1,
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent,1);
在SecondActivity點擊事件中添加代碼
Intent intent=new Intent();
intent.putExtra("data_return","HHHH");
setResult(RESULT_OK,intent);
finish();
在FirstActivity中重寫onActivityResult()方法
if(resultCode==RESULT_OK){
String returnedData=data.getStringExtra("data_return");
Log.d("FirstActivity",returnedData);
}
如果用戶通過Back鍵回傳到FirstActivity,在SecondActivity中重寫onBackPressed()方法
Intent intent=new Intent();
intent.putExtra("data_return","HHHH");
setResult(RESULT_OK,intent);
finish();
4. Android模擬器連接網路
1.cmd 打開 sdk\emulator
2.執行 emulator -avd Nexus_4_API_25 -dns-server 8.8.8.8,114.114.114.114
Nexus_4_API_25是模擬器名稱
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/287758.html
標籤:其他
下一篇:【327頁】超全的 Android 面試進階題庫!(包含Flutter、Kotlin、性能優化、Jetpack、RxJava...)
