创建第一个android demo
- match_parent : 表示当前元素和父元素一样宽
- wrap_parent : 表示当前元素的宽度正好能包含其内容就行
- fill_parent : 表示当前元素充满整个父控件
AndroidManifest.xml文件介绍
<application>
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".MainActivity"/>
</application>
解释:
<application>标签中注册两个活动LoginActivity和MainActivity,并且需要为程序配置主活动,否则程序不能运行。
注册主活动:
<activity
android:label="指定标题栏内容">
<intent_filter>
<action> </action>
<category> </category>
</intent_filter>
</activity>
Intent
作用:是在android 中各个组件交互的一种重要方式,不仅指明当前组件的动作,并且可以传递数据
显示传数据
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
隐式传数据
需要在AndroidManifest.xml中对所有活动添加 intent_filter 标签,且action和category各不相同
activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity">
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
// 隐式传输据
Intent intent = new Intent("com.example.activitytest.ACTION_START");
startActivity(intent);
解析
intent隐式传数据时,当action和category同时匹配才能响应。因为android.intent.category.DEFAULT是一种默认的category,在调用startActivity是自动将这个category加入到intent中。
生命周期
onCreate(): 当创建应用程序时调用该方法,一旦执行后就不再执行,除非销毁了才执行
onDestory(): 当退出应用程序时调用该方法
onStart():
onStop(): 当主活动为停止状态时才执行
onResume(): 离开Activity时就会执行
onPuase(): 回到原来的Activity时就会执行
onRestart():
当活动被回收
在应用中,在活动A的基础上启动活动B,活动A就进入停止状态。
当系统内存不足时,将活动A回收掉,当用户再返回到活动A时,结果会怎么样
这时还是会正常显示,只不过不再执行ReStart()方法,而是执行活动A的onCreate()方法,因为活动A在这种情况下会被重新创建一次
当活动A中存在临时数据和状态时,从活动B返回到活动A时,之前的所有临时数据将全部丢失,由于活动A被重新创建
对于这种问题,onSavedInstanceState()方法中Bundle参数提供的方法用于保存数据,
在OnCreate()方法中通过savedInstanceState.getString()等方法来恢复数据