Android学习Activity

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android学习Activity相关的知识,希望对你有一定的参考价值。

  一丶什么是活动(Activity)

    活动是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序可以包含零个或多个活动.

  二丶活动的基本用法

    首先需要在androidManif中对活动进行注册:

      <activity>

        ......

      </activity>

     还可以在Acitiviy的类中的OnCreate方法中用requestWindowFeature方法指定活动的标题栏

    当然可以使用findViewById()方法来使用在资源文件里加载的资源。如: Button button=(Button)findViewById(R.id.button);

     Toast的用法:Toast.makeText(Activity.this,"",Toas.键参).show();

     在活动中使用菜单,当然还是需要先在res中创建菜单的xml文件,然后在Activity类中重写onCreateOptionMenu()方法

    pubilc boolean onCreateOptionMenu()

    {

      getMenuInflater().inflate(R.menu.菜单名,menu);

      return true;

    }

    如果要响应菜单的点击事件的话就需要在重写onOptionsItemSelected(MenuItem item)方法,使用switch(item.getItemid())        进行判断就行了。

    

    在不同的活动之间穿梭:使用Intent  

    显式调用
    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

    startActivity(intent);
    隐式调用
    Intent intent = new Intent("com.example.activitytest.ACTION_START");
    intent.addCategory("com.example.activitytest.MY_CATEGORY");

    startActivity(intent);

           还可以使用intent.setData()方法更多的显示调用。比如如果要打开百度:intent.setData(Url.parse("http://www.baidu.com"));

                            如果要打开电话:intent.setData(Url.parse("tel:10086"));

          Intent还可以用来在活动之间传递数据,它提供了putExtra()方法。

    Activity1: intent = new Intent(Activity1.this,Activity2.class);

          intent.putExtra("extra_data",data);

    Activity2: intent = getIntent();

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

         如果需要返回数据给上一个活动,那么需要使用startActivityForResult()来启动子活动,然后在子活动中使用setResul方法,在主活动中重写                           onActivityResult(),在onActivityResult()中通过switch(reuestCode)来判断是哪一个子活动,该值在启动子活动时指定。

     

        活动的生命周期:

    1.onCreate()     2.onStart()     3.onResume()     4.onPause()     5.onStop()    6.onDestroy()

            7.onRestart()

            技术分享

      完整生存期:onCreate和onDestroy之间所经历的

      可见生存期:onStart和onStop之间所经历的

      前台生存期:onResum和onPause之间所经历的

     

     活动的启动模式:

    1.standard(缺省)    

    2.SingleTop    :在启动时如果发现返回栈的栈顶已经是该活动,则认为可以之间使用它,不会再创建新的活动实例。

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

    4.SingleInstance  :会指定一个新的返回栈来管理该活动。(解决共享活动实例)

 

   活动实践:   

    1.知晓当前是在哪一个活动: 新建一个BaseActivity使其它的活动都继承于它,然后在onCreate()中 Log.d("BaseActivity",

     getClass().getSimpleName());

     2.随时随地退出程序:新建个ActivityCollector类作为活动管理器,使用List<Activity>activities来管理。

     

 

以上是关于Android学习Activity的主要内容,如果未能解决你的问题,请参考以下文章

片段不能转换为 android.app.activity

android 兼容性包 - 片段...未附加到 Activity

调用片段活动错误无法实例化活动。无法转换为 android.app.Activity

是否有在单个活动中处理多个片段的 Android 设计模式?

如何膨胀由 Android Studio 向导在 Activity 中创建的片段(列表)?

Android - 保留片段?