十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
经过一段时间的学习,对Android有了一定的了解,在这里对浅解一下Activity。
创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为贾汪企业提供专业的成都网站制作、成都做网站,贾汪网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
Activity活动是用来与用户交互的界面,是Android组件中最基本最常见的四大组件之一,它是提供一个屏幕为了让用户跟Android之间交互完成某项任务的组件,它通过setContentView来显示指定控件。
Activity的四种启动模式:
1.standard:默认标准的。每次启动一个Activity都会创建该activity的实例对象放进栈中。
2.singleTop:如果要启动的activity实例对象位于栈顶,就会直接复用当前实例。如果不在栈顶,会创建实例对象。
3.singleTask:如果要启动的activity实例位于栈顶,就直接复用。如果位于栈中,那么在其上的所有实例对象都会依次出栈,直到当前实例位于栈顶。
4.singleInstance:如果activity使用了这种模式,相当于该activity的实例对象重新开辟了一个栈存放该实例对象。并且这个实例对象位于栈顶。所在的栈称之为共享栈。 例子:浏览器模式。
Activity的生命周期
onCreate:显示页面其实显示的是Activity的实例,这时候需要系统调用onCreate方法创建一个Activity的实例。
onStart:启动当前要显示的activity的实例。
onResume:只要这个方法执行,当前activity就显示在用户面前与用户进行交互。
onPause:当这个方法执行的时候,页面就与用户失去焦点,不能进行交互。
onStop:当这个方法执行的时候,页面就完全不可见。
onDestroy:当这个方法执行的时候,当前的activity实例就被销毁。
onRestart:页面从后台重新启动的时候执行的方法。
这些方法都不需要用户进行调用,而是系统自动进行调用的。
package cn.com.farsight.activitycycle;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
//Activity创建时被调用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("TAG", "onCreate");
}
//Activity创建或者从后台从新回到前台时被调用
@Override
protected void onStart() {
Log.i("TAG", "onStart");
super.onStart();
}
//Activity从后台重新回到前台时被调用
@Override
protected void onRestart() {
Log.i("TAG", "onRestart");
super.onRestart();
}
//Activity创建后者从被覆盖、后台从新回到前台时被调用
@Override
protected void onResume() {
Log.i("TAG", "onResume");
super.onResume();
}
//Activity被覆盖时被调用(暂停)
@Override
protected void onPause() {
Log.i("TAG", "onPause");
super.onPause();
}
//退出当前Activity或者跳转到新的Activity时被调用(停止时);
@Override
protected void onStop() {
Log.i("TAG", "onStop");
super.onStop();
}
//退出当前Activity时被调用,调用之后Activity就销毁了
@Override
protected void onDestroy() {
Log.i("TAG", "onDestroy");
super.onDestroy();
}
}