android 应用主题样式设置,及Activity生命周期了解

1.对于android应用主题样式的设置:
     1.在xml文件中进行配置  
  
在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可。 
  
实现全屏效果: 
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
实现无标题栏(但有系统自带的任务栏): 
android:theme="@android:style/Theme.NoTitleBar" 
2.编写代码设置 
在程序中编写代码进行设置,只需在onCreate()方法中加入如下代码即可 
实现全屏效果: 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  WindowManager.LayoutParams.FLAG_FULLSCREEN); 
实现无标题栏(但有系统自带的任务栏): 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
附:Android系统自带样式 
android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式  
android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏  
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏  
android:theme="Theme.Light" 背景为白色  
android:theme="Theme.Light.NoTitleBar" 白色背景并无标题栏  
android:theme="Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏  
android:theme="Theme.Black" 背景黑色  
android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏  
android:theme="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏  
android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景  
android:theme="Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏  
android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏 
android:theme="Translucent"  透明背景 
android:theme="Theme.Translucent.NoTitleBar"  透明背景并无标题 
android:theme="Theme.Translucent.NoTitleBar.Fullscreen"  透明背景并无标题,全屏 
android:theme="Theme.Panel"  面板风格显示 
android:theme="Theme.Light.Panel" 平板风格显示
2.activity的生命周期:
    在一个Activity正常启动过程中,这些方法调用的顺序是onCreate -> onStart -> onResume;在Activity被kill掉的时候方法顺序是onPause -> onStop -> onDestroy,此为一个完整的Lifecycle。那么对于中断处理(比如电话来了),则是onPause -> onStop,恢复时onStart -> onResume;如果当前应用程序的是一个Theme为Translucent(半透明) 或者Dialog 的Activity那么中断就是onPause ,恢复的时候onResume。

  那么对于”Other app need memory”,就是我们手机在运行一个应用程序的时候,有可能打进来电话发进来短信,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功能,另外系统也不允许你占用太多资源,至少要保证一些功能(比如电话),所以资源不足的时候也就有可能被kill掉。

方法在系统中的作用及我们应该做什么:

  onCreate:在这里创建界面,做一些数据的初始化工作;

  onStart: 到这一步变成“用户可见不可交互”的状态;

  onResume:变成和用户可交互的,(在Activity栈系统通过栈的方式管理这些Activity,即当前Activity在栈的最上端,运行完弹出栈,则回到上一个Activity);

  onPause:到这一步是可见但不可交互的,系统会停止动画等消耗CPU的事情。从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降          低,有可能被系统收回。在这里保存的数据,应该在onResume里读出来。

  onStop:变得不可见 ,被下一个activity覆盖了

  onDestroy:这是Activity被kill前最后一个被调用方法了,可能是其他类调用finish方法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有              一个Progress Dialog在线程中运行,请在onDestroy里把他cancel掉,不然等线程结束的时候,调用Dialog的cancel方法会抛异常。

onPause,onstop, onDestroy,三种状态下 activity都有可能被系统kill 掉。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值