当前位置: 移动技术网 > 移动技术>移动开发>Android > 学习Android基础知识-活动(Activity)

学习Android基础知识-活动(Activity)

2020年07月23日  | 移动技术网移动技术  | 我要评论

一.活动Activity:
活动是指包含一些用户界面的组件,主要用与和用户进行交互,其中一个应用程序可以包含一个或多个活动.
活动的基本用法:
1.活动创建分为两种手动创建活动和自动创建活动
1.1手动创建活动的步骤:
(1)创建一个类并继承Activity

public class MainActivity extends Activity{
	@Override
	protected void onCreate(Bundle savedLnstanceState){
		super.onCreate(savedLnstanceState);
	
}
}

(2)创建和加载布局
在res/layout目录下面创建AndroidXMLFile文件,该文件负责布局窗口,其中默认的根元素为LinearLayout线性布局
(3)在AndroidManifest文件中注册新的Activity,活动注册需要放在application标签对中,里面通过Activity标签对进行注册.Android:name来指定具体哪一个活动.

<application
	android:allowBackup="true"
	android:icon="@drawable/ic_launcher"
	android:label="@string/app_name"
	android:theme="@style/AppTheme" >
	
	<activity
		android:name=".FirstActivity"
		android:label="This is FirstActivity" >
		<intent-filter>
		<action android:name="android.intent.action.MAIN" />
			<category android:name="android.intent.category.LAUNCHER" />
		</intent-filter>
	</activity>
</application>

隐藏标题栏
在super.onCreate()方法后,在方法setContentView()方法之前加入requestWindowFeature(Window.FEATURE_NO_TITLE);其中requestWindowFeature(Window.FEATURE_NO_TITLE)表示不在活动中显示标题栏,注意这句话一定要在setContentView()之前执行,不然会报错.

在活动中使用Toast
Toast是Android中提供的一种提醒方式,在程序中可以使用将一些短小的信息提示给用户,一段时间自动消失,不占用屏幕空间
在onCreate()方法中添加代码

protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	requestWindowFeature(Window.FEATURE_NO_TITLE);
	setContentView(R.layout.first_layout);
	
	Button button1 = (Button) findViewById(R.id.button_1);
	button1.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View v) {
	Toast.makeText(FirstActivity.this, "You clicked Button 1",
	Toast.LENGTH_SHORT).show();
	}
	});
}

makeText()创建出一个 Toast 对象,然后调用 show()
将 Toast 显示出来就可以了。这里需要注意的是,makeText()方法需要传入三个参数。第一个参数是 Context,也就是 Toast 要求的上下文,由于活动本身就是一个 Context 对象,因此这里直接传入FirstActivity.this即可。第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长,有两个内置常量可以选择 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG。

在活动中创建菜单Menu
新建menu文件,在menu文件中New->AndroidXMLFIle,并命名为main.xml

menu xmlns:android="http://schemas.android.com/apk/res/android" >
	<item
	android:id="@+id/add_item"
	android:title="Add"/>
	<item
	android:id="@+id/remove_item"
	android:title="Remove"/>
</menu>

这里我们创建了连个菜单,标签就是来创建具体的某一项菜单项,然后通过Android:id给这个菜单项指定唯一的标识符,通过Android:title给这个菜单线指定一个名称.然后重写onCreateOptionsMenu()方法,代码如下:

public boolean onCreateOptionsMenu(Menu menu){
	getMenuInflater().inflate(R.menu.main, menu);
	return true;
}

通过 getMenuInflater()方法能够得到 MenuInflater 对象,再调用它的 inflate()方法就可以给
当前活动创建菜单了。inflate()方法接收两个参数,第一个参数用于指定我们通过哪一个资源
文件来创建菜单,这里当然传入 R.menu.main,第二个参数用于指定我们的菜单项将添加到哪
一个 Menu 对象当中,这里直接使用 onCreateOptionsMenu()方法中传入的 menu参数.
最后在Activity中重写onOptionsItemSelected()

public boolean onOptionsItemSelected(MenuItem item) {
	switch (item.getItemId()) {
		case R.id.add_item:
		Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
		break;
		case R.id.remove_item:
		Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
		break;
		default:
	}
return true;
}

销毁一个活动
Activity提供了一个finish()方法,调用这个方法可以销毁当前的活动,代码如下:

button.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View v) {
	finish();
	}
	});

活动的生命周期
返回栈:
Android用栈来管理活动,当创建 一个栈时,就将该活动入栈 ,最新启动的活动在栈的底部,back一个活动就相当于
把活动移除栈中,栈底的活动依次显示出来.
活动的四种状态,运行,暂停,停止,销毁
停止状态的活动容易被系统回收,销毁的活动会被系统回收,其他两种为了不影响用户体验,系统一般不会回收.

活动的生命周期中七个方法
Activity类中定义了七个回调方法
1.onCreate()这个方法非常主要,每个活动中我们都需要重写这个方法,他会子啊回调第一次被创建的时候调用
你应该在这个方法中王城活动的初始化操作,比如加载布局,绑定事件等.
2.onStart()这个方法在活动由于不可见变为可见的时候调用
3.onResume()方法在活动准备好和用户进行交互的时候调用,此时的活动一定位于返回栈的栈定,并且处于运行状态.
4.onPause()方法在系统准备去启动或者恢复另一个活动的时候调用,通常会在这个方法中将一些消耗资源释放掉,以及保存一些关键的数据,这个方法的速度一定要快,不然会影响新的栈顶活动使用.
5.onStop()这个方法在活动完全不可件的时候调用,他和onPause()方法的区别在于,如果启动新活动是一个对话框
,你那么onPause()方法会得到执行,而OnStop()方法并不会执行.
6.onDestroy()这个方法在活动销毁之前调用,之后活动的状态变为销毁状态.
7.onRestart()方法,这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了.
这七种方法中除了onRestart()方法,其他都是两两相对的,从而又可以分为三个生存周期.
三种生存周期:
1.完整生存周期
活动在onCreate()方法和onDestroy()方法之间所经历的,就是完整生存周期.一般活动子啊onCreate()方法张完成
各种初始化,在onDestroy()方法中完成资源的释放.
2.可见生存期
活动在onStart()和onStop()方法之间的所有经历,就是可见生存周期,在可见生存期,一般活动总是可见的,即便
有可能和用户无法交互,我们可以通过在这两个方法合理的管理那些对用户的可见资源,比如在onStart()方法进行资源的加载,在onStop()方法中对资源进行释放.保证处于活动状态的资源不会占用过多的内存.
3.前台生命周期
活动在onResume()和onPause()方法之间的所有经历,就是前台生存期,在前台生存期内,活动总是处于运行状态的
此时活动是可以和用户进行相互的,我们平时看到赫尔接触做多的也是这个状态下的活动.

本文地址:https://blog.csdn.net/DZMNLFH/article/details/107402137

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网