美文网首页
Activity(三)

Activity(三)

作者: 爱编程的小火柴 | 来源:发表于2018-08-03 17:09 被阅读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执行。

    相关文章

      网友评论

          本文标题:Activity(三)

          本文链接:https://www.haomeiwen.com/subject/lyluvftx.html