透明主題從一個activity A跳轉(zhuǎn)到另外一個activity B:
A:onPause()
注意不會調(diào)用onStop()方法,因此activity B finish()之后activity A不會調(diào)用onRestart()方法。
從activity B返回activity A
A:onResume()
設(shè)置activity主題透明:
示例代碼如下
<stylename="AppTheme" parent="AppBaseTheme">
? <item name="android:windowIsTranslucent">true</item>
</style>
<stylename="ThemeActivity" parent="@android:style/Theme.Light.NoTitleBar">
? <item name="android:windowIsTranslucent">true</item>
</style>
<stylename="WXTheme" parent="AppBaseTheme">
? <item name="android:windowIsTranslucent">true</item>
? <item name="android:windowNoTitle">true</item>
? <item name="android:windowBackground">@android:color/transparent</item>
</style>
解決方法:
activity跳轉(zhuǎn)返回修改狀態(tài)可使用onActivityResult()方法。Activity全屏設(shè)置
方式1:AndroidManifest.xml
<activity android:name="MainActivity"? android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
方式2:代碼實現(xiàn)
requestWindowFeature(Window.FEATURE_NO_TITLE);? // 隱藏標題欄
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);? // 隱藏狀態(tài)欄
注意:設(shè)置全屏的代碼必須在setContentView(R.layout.main) 之前,不然會報錯。
Activity橫豎屏設(shè)置
方式1:AndroidManifest.xml
<activity android:name="MainActivity"? android:screenOrientation="landscape" />? // 或者 “portrait”
方式2:代碼實現(xiàn)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
獲取橫屏方向
int orientation = this.getResources().getConfiguration().orientation;
orientation 的常用取值可以為 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE(橫屏) 或 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT(豎屏)
Activity屏幕一直顯示
1、AndroidManifest.xml添加權(quán)限
<uses-permission android:name="android.permission.WAKE_LOCK" />
2、代碼實現(xiàn)
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Activity啟動過程
可將其分為6個過程
1、使用代理模式啟動到ActivityManagerService中執(zhí)行。
2、創(chuàng)建ActivityRecord到mHistory記錄中。
3、通過socket通信到Zygote相關(guān)類創(chuàng)建process。
4、通過ApplicaitonThread與ActivityManagerService建立通信。
5、ActivityManagerService通知ActivityThread啟動Activity的創(chuàng)建。
6、ActivityThread創(chuàng)建Activity加入到mActivities中并開始調(diào)度Activity執(zhí)行。