#android#activity

来源:互联网 发布:Windows网卡绑定模式 编辑:程序博客网 时间:2024/05/16 06:34

     Activity作为四大组件之首,是使用最频繁的一种组件,通常翻译成“活动”,个人觉得翻译成“界面”更加合适一些,正常情况下,除了window、dialog和toast,见到的界面只有activity。

 1.要使用activity,必须在manifests文件中注册,先注册后使用;

 2.actionBar

actionBar位于activity的顶部,用来显示activity的标题,icon等与其他view交互的元素

actionBar是在Android3.0之后使用,如果在低版本使用,则需要加上v7支持包

下面是关于actionBar的用法

package mashen.activitydemo;import android.support.v7.app.ActionBar;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast;public class FilghtSecondActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_filght_second);        ActionBar bar=getSupportActionBar();        bar.setTitle("我的博客");        //设置Logo        bar.setLogo(R.mipmap.user);        bar.setDisplayUseLogoEnabled(true);        bar.setDisplayShowHomeEnabled(true);//        bar.setDisplayHomeAsUpEnabled(true);        //使左上角图标可点击,对应id为android.R.id.home//        bar.setDisplayShowHomeEnabled(true);    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        int id=item.getItemId();        switch (id){            case searchItemId:                Toast.makeText(this,"点击了搜索菜单",Toast.LENGTH_SHORT).show();                break;            case android.R.id.home:                Toast.makeText(this,"点击了返回菜单",Toast.LENGTH_SHORT).show();                break;        }        return super.onOptionsItemSelected(item);    }    final int searchItemId=100;    final int settingItemId=101;    final int updateItemId=102;    @Override    public boolean onCreateOptionsMenu(Menu menu) {        //创建右边的搜索        MenuItem searchItem=menu.add(0,searchItemId,0,"搜索");        searchItem.setIcon(R.mipmap.search);        //将搜索控件绑定到ActionBar        searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);        MenuItem settingItem=menu.add(0,settingItemId,0,"设置");        settingItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);        MenuItem updateItem=menu.add(0,updateItemId,0,"应用更新");        updateItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);        return super.onCreateOptionsMenu(menu);    }}

activity的生命周期

1.oncreate():表示activity正在被创建,在这个方法中我们可以做一些初始化的工作。比如调用setcontentview去加载界面布局资源。初始化activity的所需数据

2.onrestart():表示activity正在重新启动,一般情况下,当当前的activity从不可见重新变为可见状态时。onrestart()就会被调用,比如按home切换到桌面,或打开了一个新的activity,当前的activity就会被暂停,也就是onpause和onstop被执行,接着重新返回到这个activity,就会调用这个方法;

3.onstart():表示activity正在被启动,即将开始,这时候activity已经可见,但是没有出现在前台,还无法与用户进行交互;

4.onresume():表示activity已经可见了。并且出现在前台并进行活动;

5:onpause():表示activity正在停止,正常情况,紧接着onstop就会被调用,如果快速返回当前activity,那么onresume会被调用;

6:onstop():表示activity已经停止,可以做一些稍微重量级的回收工作,不能太耗时;

7:ondestory():表示activity即将被销毁,可以做一些回收工作和资源释放;

各个生命周期切换过程

1.启动:oncreate-->onstart-->onresume

2.按back键:onPause()->onStop()->onDestory()

3.按home:onPause()->onStop()这两个方法,这是activity还在后台

4.再次打开app:onRestart()->onStart()->onResume()

























1 0
原创粉丝点击