`
liuy2012
  • 浏览: 107496 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

activity中finish方法的学习一

 
阅读更多
今天想到一个问题,activity里面的静态变量,在activity打开新的activity时,并且调用finish(),新的activity中是否可以读到静态变量。

晚上网上查了下,说的是finish()后,静态变量还是可以读到的。
自己写了一个小case进行了验证,果然如上所述。
打开新的activity代码如下:
Intent intent=new Intent();
intent.setClass(this, new_activity.class);
startActivity(intent);
一开始是在startActivity后调用的finish(),我想要是finish()放在之前会怎么样,结果结果和之前还是一样。。。
继续google,才知道即使activity调用了finish(),也不会立即调用onDestory方法,而是执行完finish()后面的代码后才会调用onDestory方法。

自己的验证代码如下:
public void start_newActivity(){
    Intent intent=new Intent();
    intent.setClass(this, new_activity.class);
    startActivity(intent);
   
    Log.v(TAG, "finish");
     finish();
    }
   
    @Override 
    protected void onDestroy() { 
            super.onDestroy(); 
            Log.v(TAG, "onDestroy"); 
        } 
这样的执行结果是,finish后会立即调用onDestory;
将finish放在打开activity之前,执行结果:finish后先去打开新的activity,之后才去调用onDestory。

上面的得出的结果,代码验证是OK的,但是具体的原理需要后面学习的了解。。。
分享到:
评论
5 楼 qqyumidi123 2014-04-30  
误人子弟啊
4 楼 Will.Du 2013-05-16  
sunzeping 写道
静态变量 是存放于 方法区里的 Activity CLASS 当中, 而不只是属于某一个Activity instance

学习了
3 楼 sunzeping 2013-05-10  
静态变量 是存放于 方法区里的 Activity CLASS 当中, 而不只是属于某一个Activity instance
2 楼 Will.Du 2013-04-16  
静态变量是存放在Application堆中的,不管Activity在不在都可以读取
1 楼 nanapoleon 2012-09-02  
你最后的结论有用!很好。

相关推荐

    Activity 手势滑动 finish动画

    在Android开发中,Activity的手势滑动finish动画是一种常见的用户交互设计,它可以提供更流畅、直观的用户体验。本文将深入探讨如何实现这一功能,主要涉及自定义View和动画技术。 首先,我们需要理解Android中的...

    android-activity_学习资料

    在Android应用开发中,Activity是核心组件之一,它代表了用户与应用交互的界面。"android-activity_学习资料"的压缩包很可能包含了关于Activity的深入学习材料,旨在帮助开发者理解并熟练掌握这一关键概念。Activity...

    Android父Activity获取子Activity返回信息demo

    在Android应用开发中,Activity是构成应用程序的基本组件,它代表用户界面的一个屏幕。有时,我们需要在子Activity执行某些操作后将结果返回给父Activity。这个过程通常涉及到Intent的使用,Intent不仅用于启动新的...

    Android学习笔记-Activity篇

    Activity的关闭通常通过调用`finish()`方法实现,这会将当前Activity从栈顶移除,然后返回到上一个Activity。 五、管理Activity的生命周期: 1. 生命周期简介:Activity的生命周期由系统控制,主要分为` onCreate()...

    Android四大组件——Activity(一)Activity之间通信及其生命周期变化

    在Android应用开发中,Activity是四大组件之一,它是用户与应用程序交互的主要界面。理解Activity的通信方式和生命周期变化是每个Android开发者必须掌握的基础知识。在本篇内容中,我们将深入探讨Activity之间的通信...

    【Android开发学习20】多个Activity间的交互之Intent -- 代码

    在这个“Android开发学习20”教程中,我们将专注于使用Intent在两个Activity之间进行跳转。 首先,我们需要创建两个Activity:源Activity(SourceActivity)和目标Activity(TargetActivity)。源Activity通常是...

    四个Activity的跳转

    当用户完成某个任务或者需要返回上一界面时,可以通过`finish()`方法结束当前Activity,释放其占用的资源。 4. 返回结果: 有时候,一个Activity可能需要向启动它的Activity返回数据。这可以通过设置Intent的...

    android调用另一个activity

    3. **Activity的生命周期**: 在Android中,每个Activity都有一个完整的生命周期,包括onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()等方法。在Activity之间切换时,这些方法会被调用,...

    [Android开发从零开始].9.Activity高级学习

    在Android应用开发中,Activity是核心组件之一,它负责用户界面的展示和交互。Activity的高级学习涵盖了多个关键概念和技术,对于成为一名熟练的Android开发者至关重要。以下是对Activity高级学习的详细解析: 1. *...

    Activity之间的跳转项目案例实现

    在Android应用开发中,Activity是构成应用程序的基本单元,它代表了用户可以交互的一个屏幕。"Activity之间的跳转项目案例实现"这个主题主要关注如何在不同的Activity之间切换,并且在跳转过程中传递数据。这里我们...

    Android的Activity案例

    返回上一个`Activity`可以使用`finish()`方法。 **五、TestActivity案例分析** 在"TestActivity"案例中,我们假设`activity_test.xml`是其布局文件,可能包含了各种UI组件。开发者可以通过注释解释代码的功能,让...

    Android之Activity应用小例子

    当一个Activity被启动后,可以通过setResult()设置结果,然后使用finish()结束当前Activity。在父Activity中,可以通过onActivityResult()来接收子Activity返回的结果。 在实际应用中,Activity的管理还包括了栈的...

    最简单的2个Activity跳转

    在目标Activity中,使用setResult()设置结果并使用finish()结束Activity。 5. Eclipse中的实践: 在Eclipse中,你可以创建两个Android项目,分别代表两个Activity。在第一个Activity的按钮点击事件中实现上述代码...

    Android应用源码之(Activity跳转与操作).zip

    7. **finish()方法**:调用Activity的finish()方法可以结束当前Activity,将其从任务栈中移除。这通常发生在用户完成某个操作或点击返回按钮时。 8. **回退栈管理**:Android系统维护了一个回退栈来管理Activity的...

    Android activity生命周期示例

    1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。这是Activity生命周期的第一个回调,开发者通常在这里初始化UI布局、设置基本属性和数据。 2. **启动(Started)**:`onStart()`方法在...

    android activity 生命周期的深入学习

    通过`finish()`方法,可以手动结束一个Activity,将其从栈中移除。 四、配置变化与生命周期 当设备配置(如屏幕方向、语言等)改变时,系统默认会销毁并重新创建Activity。开发者可以通过重写`onSaveInstanceState...

    安卓手绘图片处理画板相关-Android随手势滑动销毁finishActivity.rar

    本示例项目"安卓手绘图片处理画板相关-Android随手势滑动销毁finishActivity.rar"着重于实现一个特色功能:通过用户的手势滑动来销毁(finish)Activity。这个特性常见于现代移动应用,比如左滑关闭卡片式界面或右滑...

    xamarin学习笔记A03(安卓Activity)

    使用StartActivity()方法可以启动一个新的Activity,而Finish()方法则会结束当前Activity,返回上一Activity或者退出应用。 4. **Activity的配置变更处理**:当设备发生旋转或语言切换等配置变更时,默认情况下,...

    Activity堆栈管理demo

    当用户按下设备的回退键或通过代码调用finish()方法时,栈顶的Activity会被弹出,前一个Activity就会显示出来。开发者可以通过使用FLAG_ACTIVITY_CLEAR_TOP或FLAG_ACTIVITY_SINGLE_TOP等启动Flag来控制Activity如何...

    Activity简单案例

    在`onOptionsItemSelected()`方法中,检查`MenuItem`的ID是否为`android.R.id.home`,如果是,则调用`finish()`方法关闭当前Activity: ```java @Override public boolean onOptionsItemSelected(MenuItem item) { ...

Global site tag (gtag.js) - Google Analytics