• Activity(活动)生命周期--项目测试


    一、新建一个Activitylifetest项目,允许Android Studio帮我们自动创建活动和布局,并且勾选Luancher Activity来将创建的活动设置为主活动。

    可以参考: http://www.cnblogs.com/aqyl/p/6605116.html
    项目与主活动创建完成

    二、分别创建2个子活动NormalActivity和DialogActivity

    右击com.example.activitylifetest包–》New–》Activity–》Empty Activity,新建Normal Activity,布局名为normal_layout。然后使用同样方法创建DialogActivity

    三、修改normal_layout.xml和dialog_layout.xml文件。以normal_layout举例,现象一个是normal,一个是dialog.

    1. <TextView
    2. android:layout_width="match_parent"
    3. android:layout_height="wrap_content"
    4. android:text="This is Dialog activity"
    5. />

    四、NormalActivity和Dialog中的代码我们保持默认就可以。这两个活动一个是普通的活动,一个是对话框的活动。为什么代码相同活动却不相同呢?在哪里有体现出将活动设置成对话框的呢?我们是需要在AndroidManifest.xml文件中进行设置的。

    1. <activityandroid:name=".NormalActivity"/> //普通活动
    2. <activityandroid:name=".Dialog"
    3. android:theme="@android:style/Theme.Dialog"></activity> //对话框式活动

    这里是两个活动的注册代码,但是Dialog的代码有些不同,我给它使用了一个android:theme属性,这是用于给当前活动指定主题的,Android系统内置有很多主题可以选择,当然我们也可以定制自己的主题。这里让它使用了对话框式的主题

    五、修改activity_activitylifetset.xml,重新定制主活动的布局,修改里面的代码:

    1. <Button
    2. android:id="@+id/start_normal_activity"
    3. android:layout_width="match_parent"
    4. android:layout_height="wrap_content"
    5. android:text="Start NormalActivity"/>
    6. <Button
    7. android:id="@+id/start_dialog_activity"
    8. android:layout_width="match_parent"
    9. android:layout_height="wrap_content"
    10. android:text="Start DialogActivity"
    11. android:layout_below="@+id/start_normal_activity"
    12. android:layout_alignParentLeft="true"
    13. android:layout_alignParentStart="true"/>

    添加了2个button,一个启动NormalActivity一个启动DialogActivity

    六、最后修改Activitylifetest中的代码:

    1. package com.example.activitylifetest;
    2. import android.content.Intent;
    3. import android.support.v7.app.AppCompatActivity;
    4. import android.os.Bundle;
    5. import android.util.Log;
    6. import android.view.View;
    7. import android.widget.Button;
    8. publicclassActivitylifetestextendsAppCompatActivity{
    9. publicstaticfinalString TAG="Activitylifetest";
    10. @Override
    11. protectedvoid onCreate(Bundle savedInstanceState){
    12. super.onCreate(savedInstanceState);
    13. setContentView(R.layout.activity_activitylifetest);
    14. Button startNormalActivity=(Button) findViewById(R.id.start_normal_activity);
    15. Button startDialogActivity=(Button) findViewById(R.id.start_dialog_activity);
    16. startNormalActivity.setOnClickListener(newView.OnClickListener(){
    17. @Override
    18. publicvoid onClick(View v){
    19. Intent intent=newIntent(Activitylifetest.this,NormalActivity.class);
    20. startActivity(intent);
    21. }
    22. });
    23. startDialogActivity.setOnClickListener(newView.OnClickListener(){
    24. @Override
    25. publicvoid onClick(View v){
    26. Intent intent=newIntent(Activitylifetest.this,Dialog.class);
    27. startActivity(intent);
    28. }
    29. });
    30. }
    31. @Override
    32. protectedvoid onStart(){
    33. super.onStart();
    34. Log.d(TAG,"onStart");
    35. }
    36. @Override
    37. protectedvoid onResume(){
    38. super.onStart();
    39. Log.d(TAG,"onResume");
    40. }
    41. @Override
    42. protectedvoid onPause(){
    43. super.onStart();
    44. Log.d(TAG,"onPause");
    45. }
    46. @Override
    47. protectedvoid onStop(){
    48. super.onStart();
    49. Log.d(TAG,"onStop");
    50. }
    51. //@Override
    52. protected void onDestory(){
    53. super.onStart();
    54. Log.d(TAG,"onDestory");
    55. }
    56. //@Override
    57. protected void onReStart(){
    58. super.onStart();
    59. Log.d(TAG,"onReStart");
    60. }
    61. }

    在onCreate()方法中,我们分别为2个按钮注册了点击事件。然后在Activity的7个回调方法打印了一句话,这样就可以通过观察日志的方式来更直观的理解活动的生命周期


    可能有些没文字没注意,具体命名请以截图为准



  • 相关阅读:
    第一次热身赛和正式比赛感想
    简明解释算法中的大O符号
    poj 3045
    poj 3104
    poj 3273
    poj 3258
    poj 2456
    二分法小结
    Poj 2718 Smallest Difference
    GCJ——Crazy Rows (2009 Round 2 A)
  • 原文地址:https://www.cnblogs.com/aqyl/p/6602107.html
Copyright © 2020-2023  润新知