相关疑难解决方法(0)

Activity.finish()方法到底在做什么?

我正在开发Android应用程序一段时间,并且关注了很多关于活动生命周期和应用程序生命周期的帖子.

我知道Activity.finish()方法调用的方法Activity.onDestroy(),并从堆栈中删除活动,我想它以某种方式指向操作系统和垃圾收集器,他可以"做他的把戏"并释放内存,当它发现它是一个很好的时间做所以....

我来到这篇文章 - 退出申请不赞成?并阅读Mark Murphy的回答.

这让我对这个finish()方法究竟是做什么感到困惑.

我有机会打电话finish(),onDestroy()不会打电话吗?

android application-lifecycle activity-lifecycle ondestroy

148
推荐指数
7
解决办法
20万
查看次数

完成后继续onCreate流程()

我想从onCreate方法内部完成一个活动.当我打电话时finish(),onDestroy()没有立即调用,代码不断流过finish().onDestroy()直到onCreate()结束括号后才调用.

根据onCreate()developer.android.com/reference上的说明.

您可以在此函数中调用finish(),在这种情况下,将立即调用onDestroy(),而不执行任何其余的活动生命周期(onStart(),onResume(),onPause()等).

我问的原因是:我想检查传递给Bundle的数据onCreate().当然我可以控制传递的内容onCreate,但我仍然认为应该在交付时进行检查.

我的代码包含class A,它启动Activity B.我认为不应该调用最后两个"if of clause子句"标签,因为语句中的finish方法if应该销毁了活动.它与if子句无关,因为第二次finish()调用后的标记行仍然被读取.

我的代码:

A级

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // goToBButton: when pressed sends message to class B.    
    Button goToBButton = (Button)this.findViewById(R.id.go_to__b_btn);
    goToBButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick (View v) {      
            Log.i(TAG,"A Class: goToBButton, onClick");
            Intent i = new Intent(A.this, B.class);
            startActivityForResult(i,REQ_TO_B);
        } …
Run Code Online (Sandbox Code Playgroud)

android oncreate

74
推荐指数
2
解决办法
3万
查看次数

在Android活动上调用finish()实际上并没有完成

我在打电话,finish()但我的活动一直在继续.

我有一个活动,由主活动屏幕中的菜单调用.在我的activity的onCreate()方法中,我有以下代码片段:

    // Make sure there are some events in the list.
    if (theEventArrayList.isEmpty()){
        Toast.makeText(this, "Event List is empty", Toast.LENGTH_LONG).show();
        finish();
    }
    SummarizeCurrentEvent();
    graphEvents();
Run Code Online (Sandbox Code Playgroud)

如果列表为空,则会显示Toast,我可以在调用时设置断点finish().如果我从调试器中的那个步骤开始直接进入SummarizeCurrentEvent().我以为finish()会退出活动.这不是这种情况吗?我在哪里可以找到有关此方法的更多信息?

android

50
推荐指数
2
解决办法
5万
查看次数

在onBackPressed()中调用finish()之后为什么Activity没有完成或销毁?

朋友在我的活动中,我已经放入了finish()内部onBackpressed(),但有时它还没有完成或破坏活动..问题是什么?

android

4
推荐指数
1
解决办法
4169
查看次数

this.finish()真的有什么作用?它会阻止我的代码运行吗?

关于this.finish()究竟是什么,我有点朦胧.具体来说,我只是在一个活动中编写了以下代码行:

this.finish();
Globals gs = (Globals) getApplication();
gs.MainActivity.finish();
Run Code Online (Sandbox Code Playgroud)

该代码旨在关闭当前活动并关闭应用程序的核心活动.而且效果很好.但是,我很想知道......显然当前的活动在第一行执行后并没有完全结束.如果我要调用this.finish()然后开始一些复杂的计算呢?

我的问题是:当我调用this.finish()时,我的Activity什么时候被删除?

android

2
推荐指数
2
解决办法
6445
查看次数

为什么要在发送 Intent 后调用 finish() 方法?

我刚刚在

Intent wizard = new Intent();
wizard.setClass(this, A.class);
wizard.putExtra("Domain", A.getInstance().B);
startActivity(wizard);
finish();
Run Code Online (Sandbox Code Playgroud)

为什么要在这里调用 finish() 方法?它的目的是什么?

java android android-intent

2
推荐指数
1
解决办法
4097
查看次数

在所有行执行之前传递完成活动 - android

如果我们调用acitivty.finish()并且下面有一些代码行.一旦调用了finish(),它会被执行吗?还是忽略了?

java android

1
推荐指数
1
解决办法
90
查看次数