Activity(三)

2018-08-03  本文已影响0人  爱编程的小火柴

透明主题从一个activity A跳转到另外一个activity B:

A:onPause()

注意不会调用onStop()方法,因此activity B finish()之后activity A不会调用onRestart()方法。

从activity B返回activity A

A:onResume()

设置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跳转返回修改状态可使用onActivityResult()方法。Activity全屏设置

方式1:AndroidManifest.xml

<activity android:name="MainActivity"  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

方式2:代码实现

requestWindowFeature(Window.FEATURE_NO_TITLE);  // 隐藏标题栏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);  // 隐藏状态栏

注意:设置全屏的代码必须在setContentView(R.layout.main) 之前,不然会报错。

Activity横竖屏设置

方式1:AndroidManifest.xml

<activity android:name="MainActivity"  android:screenOrientation="landscape" />  // 或者 “portrait”

方式2:代码实现

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

获取横屏方向

int orientation = this.getResources().getConfiguration().orientation;

orientation 的常用取值可以为 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE(横屏) 或 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT(竖屏)

Activity屏幕一直显示

1、AndroidManifest.xml添加权限

<uses-permission android:name="android.permission.WAKE_LOCK" />

2、代码实现

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);                                                                            Activity启动过程

可将其分为6个过程

1、使用代理模式启动到ActivityManagerService中执行。

2、创建ActivityRecord到mHistory记录中。

3、通过socket通信到Zygote相关类创建process。

4、通过ApplicaitonThread与ActivityManagerService建立通信。

5、ActivityManagerService通知ActivityThread启动Activity的创建。

6、ActivityThread创建Activity加入到mActivities中并开始调度Activity执行。

上一篇下一篇

猜你喜欢

热点阅读