zoukankan      html  css  js  c++  java
  • android:activity知识点

    一、活动流程

    1、创建活动

    public class firstActivity extends Activity{}

    2、创建布局

    新建first_layout.xml文件

    3、注册活动

    在androidManifest.xml中注册活动

    二、活动的几个功能点

    1、隐藏标题栏

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    2、使用Toast。提醒方式,不获得焦点,一段时间消失

    Toast.makeText(firstActivity.this,"hello world",Toast.LENGTH_SHORT).show();

    3、从布局文件获得元素

    Button button1=(Button)findViewById(R.id.button_1);

    4、使用menu

               a.新建 android xml file来描述菜单main.xml

               b.创建菜单 。重写活动中onCreateOptionMenu()方法

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

               c.给菜单中选项添加响应。重写onOptionsItemSelected()方法

             @Override

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

    5、销毁活动

    finish();

    三、活动之间相互调用。通过Intent类。有很多构造函数哦

    1、显式启动另外一个活动。通过显式intent

    Intent intent=new Intent(firstActivity.this,secondActivity.class);  //显示调用构建方法

    startActivity(intent);

    2、隐式启动另外一个活动。隐式intent

      a、在androidManifest.xml中给活动<activity>指定响应的action和category

      b、构建intent,带有响应标识

         Intent intent=new Intent("com.example.activitytest.ACTION_START"); 

         startActivity(intent);

    3、启动其它程序中的活动。通过隐式intent

       a、启动系统内置浏览器

        Intent intent=new Intent(Intent.ACTION_VIEW);    //Intent.ACTION_VIEW常量为 “android.intent.action.view”

        intent.setData(Uri.parse("http://www.baidu.com"));

       b、启动内置拨号界面

       Intent intent=new Intent(Intent.ACTION_DIAL); 

       intent.setData(Uri.parse("tel:10086"));

    4、向下一个活动传递数据

      a、向intent中写入数据

        intent.putExtra("extra_data","我是数据哦");

      b、从intent中取出数据

        Intent intent=getIntent();

        String data=intent.getStringExtra("extra_data");

    5、向上一个活动传递数据

        a、在第一个活动中启动带返回值的第二个活动。

             startActivityForResult(intent,1);

        b、在第二个活动中,给intent中写入数据

               Intent intent=new Intent();

               intent.putExtra("data_return","我是待返回的数据哦");

               setResult(RESULT_OK,intent);

        c、在第一个活动中,接收数据。通过重写onActivityResult()方法

               @Override
        protected void onActivityResult(int requestCode,int resultCode,Intent data){
          switch(requestCode){
          case 1:
            if(resultCode==RESULT_OK){
          String retrundata=data.getStringExtra("data_return");
          Log.d("first",retrundata);
          }
          }

    四、活动的生命周期

    onCreate,onStart,onResume,onPause,onStop,onDestroy,onRestart

    1、完整生存期  活动在onCreate和onDestroy方法之间所经历的,就是完整生存期。onCreate方法中完成初始化,onDestroy中释放内存

    2、可见生存期  活动在onStart和onStop方法之间。可见生存期内,活动对于用户总是可见的,即便有可能无法和用户进行交互。

    3、前台生存期  活动在onResume和onPause方法之间。前台生存期内,活动总是处于运行状态,此时的活动是可以和用户进行交互的。

    五、活动的启动模式

    在androidManifest.xml中,可以设置活动的启动模式四种

    1、standard模式:每当启动一个新活动,系统都会创建该活动的一个实例。而不管这个活动是否已经在返回栈中存在。导致创建多个活动实例

    2、singleTop模式:启动活动时,如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,而不会再创建新的实例。但是如果该活动不在栈顶,则创建一个新的实例。导致创建多个活动实例

    3、singleTask模式:启动活动时,系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。

    4、singleInstance模式:指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动。解决共享活动实例的问题。

  • 相关阅读:
    vim操作指南
    Linux的常用命令
    Maven的标准settings.xml文件
    常用的Docker镜像及处理命令
    Java新特性 5、6、7、8、9、10、11、12、13
    数据库的元数据抽取SQL
    元类metaclass
    MySQL视图,函数,触发器,存储过程
    ajax与后台交互案例
    python数据类型小测试
  • 原文地址:https://www.cnblogs.com/crhdyl/p/5059789.html
Copyright © 2011-2022 走看看