覆写Activity的finish()方法

MainActivity如下:

package cn.testfinish;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
 * Demo描述:
 * 覆写Activity的finish()方法
 * 一般情况下当调用finish()方法时,会调用onDestroy()
 * 当覆写了Activity的finish()方法后,在执行finish()
 * 方法时会先调用覆写的finish()再调用onDestroy()方法.
 */
public class MainActivity extends Activity {
    private Button mButton;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}
    private void init(){
    	mButton=(Button) findViewById(R.id.button);
    	mButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View view) {
				MainActivity.this.finish();
			}
		});
    }

    @Override
    public void finish() {
    	super.finish();
    	System.out.println("调用了覆写的finish()方法");

    }
    @Override
    protected void onDestroy() {
    	super.onDestroy();
    	System.out.println("调用了Activity的onDestroy()方法");
    }

}

main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="click here"
        android:layout_centerInParent="true"
    />

</RelativeLayout>

 

时间: 2024-10-07 20:36:55

覆写Activity的finish()方法的相关文章

退出Android程序时清除所有activity的实现方法_Android

本文实例讲述了退出Android程序时清除所有activity的方法.分享给大家供大家参考,具体如下: 在一个项目中,要退出android程序,试了restartPackage. killBackgroundProcesses .通过异常并在Application的子类中重新注册Thread的 Thread.UncaughtExceptionHandler接口+异常方式,等等,都没有效果. 最后发现其实只要在从一个activity A 跳到另一个activity B 时,调用了A的finish方

退出Android程序时清除所有activity的实现方法

本文实例讲述了退出Android程序时清除所有activity的方法.分享给大家供大家参考,具体如下: 在一个项目中,要退出android程序,试了restartPackage. killBackgroundProcesses .通过异常并在Application的子类中重新注册Thread的 Thread.UncaughtExceptionHandler接口+异常方式,等等,都没有效果. 最后发现其实只要在从一个activity A 跳到另一个activity B 时,调用了A的finish方

Android 中 退出多个activity的经典方法_Android

1.使用List集合方式 用list保存activity实例,然后逐一干掉 import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Application; import android.content.DialogInterface; import android.content.Inte

安卓-在继承intentservice的中如何调用finish()方法

问题描述 在继承intentservice的中如何调用finish()方法 在继承intentservice的中如何调用android.app.Activity的finish()方法

详解java重载与覆写的区别_java

很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆.先给出我的定义: 首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型.重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义.调用方法时通过传递给它们的不同参数个数和参数类型来决定具

Android 中 退出多个activity的经典方法

1.使用List集合方式 用list保存activity实例,然后逐一干掉 import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Application; import android.content.DialogInterface; import android.content.Inte

java-初学者求问覆写与否的方法调用问题

问题描述 初学者求问覆写与否的方法调用问题 在看Java开发实战经典的时候看到覆写一部分,大致代码如下: public class Hello { public static void main(String[] args) { new Student().fun(); } } class Person{ private void print() { System.out.println(""Person""); } void fun() { this.print(

[你必须知道的.NET]第十七回:貌合神离:覆写和重载

本文将介绍以下内容: 什么是覆写,什么是重载 覆写与重载的区别 覆写与重载在多态特性中的应用 1.引言 覆写(override)与重载(overload),是成就.NET面向对象多态特性的基本技术之一,两个貌似相似而实则不然的概念,常常带给我们很多的误解,因此有必要以专题来讨论清楚其区别,而更重要的是关注其在多态中的应用. 在系列中,我们先后都有关于这一话题的点滴论述,本文以专题的形式再次做以深度讨论,相关的内容请对前文做以参考. 2.认识覆写和重载 从一个示例开始来认识什么是覆写,什么是重载?

Magento 覆写

magento的覆写很重要,在项目开发过程中经常需要修改核心的东西,但为了不影响magento系统升级,我们不能直接对magento的核心代码修改,我们只能覆写.下面介绍各个部件的覆写方法 . 如要覆写magento核心模块里面的php文件即app/code/core目录下的php文件,可以把core目录下的文件直接复制到 local目录 下,比如覆写/core/Mage/Catalog/Model/Product.php文件,那么把product复制放到local保持路径一至 /local/M