Android应用开发(二):Activity生命周期剖析以及如何启动新的Activity或网页

本文讲述组件Activity的相关知识,主要包括如何启动一个Activity、如何打开一个网页,最后解析Activity的生命周期相关知识。

1、如何启动一个Activity

(1)、新建一个Activity

要启动一个新的Activity,就必须先创建一个新的Activity,Android Studio可以直接创建Activity而不需要一行一行的敲代码,这就是前面所说的采用Android Studio平台的好处之一。

具体代码如下:

package edu.fred.hqu.androidactivity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class AnotherAty extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_another_aty);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_another_aty, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

Android Studio的好处还在于,Android Studio可以在layout和AndroidManifest.xml中将新建的Activity所需要的代码自动生成,如下图所示:

(2)、加入Button

然后,我们在activity_main.xml中加入一个Button,旨在点击该按键可以进入另一个Activity,代码如下:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="点击启动一个界面"
    android:id="@+id/btnStartAnotherAty1"
    android:layout_below="@+id/textView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

(3)、修改MainActivity.java

接着,在MainActivity.java中加入如下代码:

/*启动另一个Activity*/
findViewById(R.id.btnStartAnotherAty1).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(MainActivity.this, AnotherAty.class));//启动另一个Activity

    }
});

(4)、编译运行

最后编译运行,结果如下图所示:

2、如何打开一个网页

打开网页很简单,直接在MainActivity.java中加入如下代码:

/*启动另一个网页*/
findViewById(R.id.btnStartAnotherAty2).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://blog.csdn.net/frd2009041510")));//启动另一个网页

    }
});

为了观察效果,可以像之前一样加一个按键,最后给出效果图

3、Activity的生命周期

生命周期示意图如下:

接下来,我们加入代码验证该图,加入的代码如下:

/*Activity生命周期*/

@Override
protected void onStart() {
    super.onStart();
    System.out.println("A onStart");
}

@Override
protected void onResume() {
    super.onResume();
    System.out.println("A onResume");
}

@Override
protected void onPause() {
    super.onPause();
    System.out.println("A onPause");
}

@Override
protected void onStop() {
    super.onStop();
    System.out.println("A onStop");
}

@Override
protected void onDestroy() {
    super.onDestroy();
    System.out.println("A onDestroy");
}

@Override
protected void onRestart() {
    super.onRestart();
    System.out.println("A onRestart");
}

在另一个Activity中加入代码如下:

/*Activity生命周期*/
@Override
protected void onStart() {
    super.onStart();
    System.out.println("B onStart");
}

@Override
protected void onResume() {
    super.onResume();
    System.out.println("B onResume");
}

@Override
protected void onPause() {
    super.onPause();
    System.out.println("B onPause");
}

@Override
protected void onStop() {
    super.onStop();
    System.out.println("B onStop");
}

@Override
protected void onDestroy() {
    super.onDestroy();
    System.out.println("B onDestroy");
}

@Override
protected void onRestart() {
    super.onRestart();
    System.out.println("B onRestart");
}

最后运行,查看运行日志验证结果,下面给出开始运行的一部分结果截图,执行的步骤是进入Activity,点击启动另一个Activity,结果如下图:

实验结果分析:主Activity首先启动,即A onCreate、A onStart、A onResume,点击启动另一个新的Activity后A onPause,接着B onCreate、B onStart、B onResume,最后A onStop,可以看出完全符合Activity周期图。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-30 13:27:19

Android应用开发(二):Activity生命周期剖析以及如何启动新的Activity或网页的相关文章

Activity生命周期的回调,你应该知道得更多!--Android源码剖析(上)

转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/46909173[yalinfendou的博客] 学习Android近一年,最近几天总算把Activity启动的生命周期回调流程走通了,因为所涉及的知识点太多,赶快做了笔记,不然过几天就忘了.强烈推荐<Android内核剖析>这本书,虽然随着Android版本的不断迭代更新,代码变化了不少,仍具有很强的参考价值. 本篇所涉及知识点: Android 从开机到第一个Activit

android --Activity生命周期具体解释

一. 再探Activity生命周期 为了研究activity的生命周期,简单測试代码例如以下. package com.example.testactivity; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { private static fi

android --Activity生命周期详解

一. 再探Activity生命周期 为了研究activity的生命周期,简单测试代码如下. package com.example.testactivity; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { private static fina

Android Activity生命周期的几个问题

每一个Android开发者都应该知道,android系统有四个重要的基本组件,即Activity(活动).Service(服务).Broadcast Receive(广播接收器)和Content Provider(内容提供器),其中,Activity是最重要的组件,打开你手机上的APP,你眼睛所能看到的都是Activity,下面将会介绍关于Activity生命周期的几个问题. 1 Activity生命周期的8个回调函数 下图是Activity的生命周期图,相信许多人都看过不止一次,但有的人是看到

Android 面试之横竖屏切换的Activity生命周期

public class EngineerJspActivity extends Activity { private static String Tag = "EngineerJspActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(Tag, "onCreate()"); setCont

Android 四大组件之Activity生命周期

写这篇博文之前,已经对android有一定的了解和认识.这篇博文主要讲述android的Activity的生命周期,这是android开发者必须掌握的知识.android的Activity组件拥有7个生命周期:onCreate().onStart().onResume().onPause().onStop().onDestory().onReStart(). 这7个生命周期分别在4个特定阶段进行调用. 开始Activity:当Activity开始运行的时候依次执行3个生命周期:onCreate.

3. 管理 Activity 生命周期

当用户导航.退出和返回您的应用时,应用中的 Activity 实例将在其生命周期中转换不同状态. 例如,当您的 Activity 初次开始时,它将出现在系统前台并接收用户焦点. 在这个过程中,Android 系统会对 Activity 调用一系列生命周期方法,通过这些方法,您可以设置用户界面和其他组件. 如果用户执行启动另一 Activity 或切换至另一应用的操作,当其进入后台(在其中 Activity 不再可见,但实例及其状态完整保留),系统会对您的 Activity 调用另外一组生命周期方

深入剖析Android四大组件(一)——Activity生命周期详解

1.管理Activity的生命周期 无论是正在运行的Activity还是没有运行的Activity,它们都接受Android的框架管理,这使得Activity处于不同的生命周期. ①Activity的3种状态 通过回调方法来管理Activity的生命周期对于开发一个健壮并且灵活的应用程序是非常关键的.Activity的生命周期直接影响到它与其他Activity,任务以及栈的关系. Activity存在3种状态,分别是resumed,paused和stopped. resumed:指Activi

【Android开发-8】生命周期,Activity中打开另外一个Activity

前言:生命中有许多人陪伴自己走过一生中的某段旅程,只是有些人只是某阶段出现,有些人却陪伴自己很久.就像小学.中学.高中.大学,那些曾经以为会长久拥有的,当经历过天涯各地地忙碌于生活,或如意,或失意:渐渐地那些画面只剩回忆.天涯各自安命,能在一起的就尽力珍惜吧,不在一起地就衷心地祝福,我们都需要一种姿态生活下去!Android中的Activity的生命中,我们经常需要打开另外一个Activity,即另外一个界面.这个可能出现的时间很短暂,然后又回到主界面.但是这两个Activity都在各自的生命周