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模式的活动会启用一个新的返回栈来管理这个活动。解决共享活动实例的问题。

  • 相关阅读:
    网络七层
    微信小程序开发工具 常用快捷键
    BZOJ 1026 windy数 (数位DP)
    BZOJ 1026 windy数 (数位DP)
    CodeForces 55D Beautiful numbers (SPOJ JZPEXT 数位DP)
    CodeForces 55D Beautiful numbers (SPOJ JZPEXT 数位DP)
    HDU 3709 Balanced Number (数位DP)
    HDU 3709 Balanced Number (数位DP)
    UVA 11361 Investigating Div-Sum Property (数位DP)
    UVA 11361 Investigating Div-Sum Property (数位DP)
  • 原文地址:https://www.cnblogs.com/crhdyl/p/5059789.html
Copyright © 2011-2022 走看看