Android初级第二次小结

    xml注释:

        <!-- 注释内容 -->

        不能再标签的属性内部注释,在标签之外。

    问题:

    在控制台中出现:

       You must restart adb and Eclipse

    关掉Eclipse以及模拟器并杀死adb.exe这个进程,重新启动

    Activity   界面

         四大组件之一

    三大要素:

       1、声明一个类继承Activity

       2、关联布局文件(setContentView())

       3、必须在清单文件中注册

           <activity

                   android:name = 包名 + 类名/>

    在清单文件中配置入口界面

    <intent-filter>

                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />

                </intent-filter>

    界面跳转:

    //打开一个界面

    // Intent intent = new Intent();//意图 :界面之间沟通的桥梁

    // intent.setClass(MainActivity.this, SecondActivity.class);

       

        Intent intent = new Intent(MainActivity.this, SecondActivity.class);

        startActivity(intent);

    //关闭界面

        finish();

    A ----> B

      步骤:

      1、在A中:

      String string = mEditText.getText().toString().trim();

        Intent intent = new Intent(MainActivity.this, SecondActivity.class);

        intent.putExtra("text", string);

        intent.putExtra("int", 1);

        intent.putExtra("boolean", true);

        startActivity(intent);

     2、在B中,onCreat();

        //得到意图

      Intent intent = getIntent();

      //从意图或获取信息

      String text = intent.getStringExtra("text");

      int i = intent.getIntExtra("int", 0);

      boolean booleanExtra = intent.getBooleanExtra("boolean", false);

    A ----> B  ----> A

      1、在A中

           String str = mEditText.getText().toString();

      Intent intent = new Intent(this, SecondActivity.class);

      intent.putExtra("str", str);

      startActivityForResult(intent , 0);//开启一个界面并等待其返回消息

     2、B界面中返回消息

       Intent data = new Intent();

      data.putExtra("return", string);

      setResult(0, data );

      finish();

     3、A界面接收消息并处理

        重写onActivityResult()

           protected void onActivityResult(int requestCode, int resultCode, Intent data) {

         super.onActivityResult(requestCode, resultCode, data);

         if(data != null)

         {

          String stringExtra = data.getStringExtra("return");

          mTextView.setText(stringExtra);

         }

        }

    

    requestCode  请求码

              用于区分当前界面的不同的请求事件

        

    resultCode 结果码

               用于区分返回消息页面的不同返回事件

    注意:不要使用魔鬼数字

    

    Activity的生命周期

        ACD880D015E842C4957AA255A9779F85

    创建 --- 》  运行    

                       onCreat()   ----->  onStart()  ---->  onResume()

    运行 --->  销毁

                   onPause() --->  onStop() ---->  onDestroy()

    运行  ---->  暂停(可见不可操作的时候)

                   onPause()

            恢复运行状态:

                 onResume()

    运行 ---->  停止(不可见可不可操作)

              onPause() ---》 onStop()

             恢复运行:

                onRestart()  ---- 》 onStart()  ----》 onResume

    注意:   当Activity处于暂停或者停止状态时,如果更高优先级的进程需要内存的话,当前Activity有可能被杀死掉。

    内存:  掉电消失

    外存 :  理论上数据是可以永久保存

    一般在  onPause   onStop   onDestroy  保存数据(持久化) 

                 onCreat  onStart  onResume   去获取数据恢复到界面上     

    

    1、得到数据持久化保存的路径

         String path = "/mnt/sdcard/data.txt";

        //sdcard的路径

        String path = Environment.getExternalStorageDirectory() + "/data.txt";

    

    2、权限:

          需要用到系统服务的话,就要去申请权限

    

    //读写外部存储的权限(sdcard)

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    

    3、保存数据(一般是在onStop())

    4、读取数据(一般在 onStart())

       FileInputStream  fis = null;

      try {

       fis = new FileInputStream(path);

       ByteArrayBuffer arrayBuffer = new ByteArrayBuffer(5000);

       int len = 0;

       byte[] buffer = new byte[1024];

       while(-1 != (len  = fis.read(buffer )))

       {

        arrayBuffer.append(buffer, 0, len);

       }

       String str = new String(arrayBuffer.toByteArray(),0,arrayBuffer.length());

       mEditText.setText(str);

      } catch (FileNotFoundException e) {

       e.printStackTrace();

      } catch (IOException e) {

       e.printStackTrace();

      }finally

      {

       if(fis != null)

       {

        try {

         fis.close();

        } catch (IOException e) {

         // TODO Auto-generated catch block

         e.printStackTrace();

        }

       }

      }

    

你可能感兴趣的:(android,标签,控制台,模拟器)