Android基础——Activity的状态,创建和结束

注意 onRestart的箭头是弄错了,应该指向onStart

MainActivity的布局文件和java代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="查看详情"
        >
    </Button>

</LinearLayout>
package com.example.myactivityi;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

/*
* Activity四种状态:
* 运行,暂停:可见
* 停止,销毁:不可见
*
* 创建Activity的步骤:
*   1.创建继承自Activity的Activity
*   2.重写需要的回调方法
*   3.设置要显示的视图
*
* 启动Activity:
*   入口Activity:在AndroidManifest.xml中配置
*   其他Activity:调用startActivity(intent)方法
* 关闭Activity:
*   在相应事件中调用finish();
*
* */

public class MainActivity extends Activity {

    //重写活动运行前的三个方法
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i("Activity生命周期","onCreate()方法调用");

        //获取启动detail活动的按钮
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                //创建intent对象
                Intent intent = new Intent(
                        MainActivity.this,DetailActivity.class
                );
                //启动
                startActivity(intent);
            }
        });

    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.i("Activity生命周期","onStart()方法调用");
    }

    //剩下三种状态的方法重写
    @Override
    protected void onPause() {
        super.onPause();
        Log.i("Activity生命周期","onPause()方法调用");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.i("Activity生命周期","onStop()方法调用");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("Activity生命周期","onDestroy()方法调用");
    }

}

detailActivity的布局文件和java代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="关闭"
        />

</LinearLayout>
package com.example.myactivityi;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.annotation.Nullable;

/* 创建Activity的步骤:
 *   1.创建继承自Activity的Activity
 *   2.重写需要的回调方法
 *   3.设置要显示的视图
 *   4.配置,注册这个新的Activity
 */

//1.继承Activity
public class DetailActivity extends Activity {
    //2.重写回调方法
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //3.设置要显示的视图
        setContentView(R.layout.activity_detail);

        //退出
        Button button = (Button)findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}

原文地址:https://www.cnblogs.com/zsben991126/p/12234181.html

时间: 2024-10-25 20:35:20

Android基础——Activity的状态,创建和结束的相关文章

面试中被问到:Android中activity保存状态数据到底该在哪个方法中进行

今天接到一个电面,途中面试官问到一个问题,如果一个activity在后台的时候,因为内存不足可能被杀死,在这之前如果想保存其中的状态数据,比如说客户填的一些信息之类的,该在哪个方法中进行. 我听到的第一反应就是说:在onPause方法中进行保存状态的操作.但是面试官说:onPause()的持续时间很短,假如要进行一些长时间的操作呢? 然后我就纠结了,因为我知道,如果是因为内存不足而被清理,onDestroy()方法一般是不会被执行的.所以只好实话实说,只知道onDestroy在这种情况下不一定会

Android基础:Activity

Activity基本概念 Activity代表活动窗口,通过Context加载页面显示内容,每一个Activity都必须在manifest.xml中注册. 一个应用程序由多个界面构成,回退栈,活动窗口,新窗口加入,旧窗口压入栈 继承了Activity的类都包括: onCreate() 方法内部有setContextView(int layoutResID), 会加载资源文件; onPause() 用户离开Activity,系统会自动调用,但是Activity并没有被销毁,在这个生命周期里数据需要

[Android基础]Activity的生命周期

今天面试被问及了一个问题:Activity A.Activity B,Activity A 被B覆盖的时候,Activity生命周期中哪几个方法被调用了?Activity A.Dialog B对话框覆盖了Activity A,Activity生命周期中哪些方法被调用了?答案等下揭晓: 我们经常使用Activity,也知道Activity的生命周期中有onCreate.onStart.onResume.onPause.onStop.onDestroy.onRestart这些方法,那么这些方法什么时

Android基础Activity篇——Intent

1.显式的Intent intent是用来各各活动之间切换的,还可以用来传递参数. 项目还是使用之前创建的ActivityTest项目,这里新建一个活动SecondActivity.java,并且勾选创建second_layout.xml. 在second_layout.xml.写入代码如下. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:

Android基础 -- Activity之间传递数据(bitmap和map对象)

原文:http://blog.csdn.net/xueerfei008/article/details/23046341 做项目的时候需要用到在2个activity之间传递一些数据,之前做的都是些字符串之类的东东,结果这次卡了好久,折腾了一个下午. 第一个:传递bitmap 这个问题非常奇葩(可能我android水平还不够),居然不会报错,我是直接用bundle或Intent的extral域直接存放bitmap,结果运行时各种宕机,各种界面乱窜(我非常的纳闷)...搜索之后看大家都说不能直接传递

android 在一个Activity(A)中结束另一个Activity(B)

在ActivityA中定义静态变量: static Acivity ActivityA: 在AcivityA的onCreate()方法里面给ActivityA赋值: ActivityA = this: 在AcivityB中按需要结束ActivityA,执行finsh(): AcivityA.ActivityA.finsh():

Android中activity保存状态的几个放大的使用

参考: Android_onRetainNonConfigurationInstance和getLastNonConfigurationInstance http://www.cnblogs.com/dengxianzhi/articles/2248655.html onSaveInstanceState() 和 onRestoreInstanceState() http://www.cnblogs.com/hanyonglu/archive/2012/03/28/2420515.html

Android 面试题总结之Android 基础(二)

Android 面试题总结之Android 基础ContentProvider(二) 在上一章节Android 面试题总结之Android 基础Activity(一) 我们讲的Activity基础知识.有许多朋友反映看着比较乱,我又回去看了看 ,确实很乱,不够细心.然后我又重新整理了一遍.让大家阅读体验更好! 在阅读过程中有任何问题,请及时联系. 本章系<Android 之美 从0到1 – 高手之路>Android基础ContentProvider 总结了Android 开发者面试比较常见的C

Android基础部分再学习---activity的状态保存

主要是bundle   这个參数 參考地址:http://blog.csdn.net/lonelyroamer/article/details/18715975 学习Activity的生命周期,我们知道,当Activity进入到paused或者stopped状态后,这个Activity的状态仍然保存着. 由于这个Activity对象仍然保存在内存中.它的全部信息和状态仍然是存在的.当这个Activity再次返回到前台是,它仍然保持着离开时候的样子. 然而.假设Activity进入到了后台.系统为