在 Android 中启动新的 Activity 并完成当前的 Activity? [复制]

     2023-04-14     85

关键词:

【中文标题】在 Android 中启动新的 Activity 并完成当前的 Activity? [复制]【英文标题】:Start new Activity and finish current one in Android? [duplicate] 【发布时间】:2012-07-03 17:23:38 【问题描述】:

目前我正在创建一个新的Activity 并在当前的上调用finish

是否有任何标志可以传递给Intent,从而能够完成当前Activity,而无需从代码中手动调用finish

【问题讨论】:

【参考方案1】:

你可以使用finish()方法或者你可以使用:

android:noHistory="true"

然后就不用再打电话给finish()了。

<activity android:name=".ClassName" android:noHistory="true" ... />

【讨论】:

你确定这和你说的一样吗?来自 android 文档:FLAG_ACTIVITY_NO_HISTORY 如果设置,新活动不会保存在历史堆栈中。一旦用户离开它,活动就完成了。这也可以使用 noHistory 属性设置。 android:noHistory="true" 和 finish() 不一样! 只用finish(),不要用noHistory 这是完美的,谢谢!【参考方案2】:

像这样使用finish

Intent i = new Intent(Main_Menu.this, NextActivity.class);
finish();  //Kill the activity from which you will go to next activity 
startActivity(i);

FLAG_ACTIVITY_NO_HISTORY 可以用于您想要完成的活动。例如,您从 A-->B--C 出发。当你从 B-->C 出发时,你想完成活动 B,所以当你从 A-->B 出发时,你可以使用这个标志。当您进行其他活动时,该活动将自动完成。

要了解有关使用 Intent.FLAG_ACTIVITY_NO_HISTORY 的更多信息,请阅读:http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_HISTORY

【讨论】:

FLAG_ACTIVITY_NO_HISTORY 则相反。新活动未保存在历史记录中,而我希望完成之前的活动。 finish() 假设杀死当前活动?您希望它如何到达下一行 startActivity(i) ?对我来说看起来很危险且出乎意料 @Michael Calls are async startActivity() 将被调用。 @tomi 你能解释一下这个“调用是异步的 startActivity() 将被调用。”更准确? 你可以参考这个答案***.com/questions/10847526/…【参考方案3】:

FLAG_ACTIVITY_NO_HISTORY 开始您希望在用户转到另一个活动后完成的活动。

http://developer.android.com/reference/android/content/Intent.html#FLAG%5FACTIVITY%5FNO%5FHISTORY

【讨论】:

FLAG_ACTIVITY_NO_HISTORY 则相反。新活动未保存在历史记录中,而我希望完成之前的活动。 是的,我就是这么说的。您希望完成的活动 A,从活动 A 访问的活动 B。使用我提到的标志启动活动 A,因此当用户从活动 A 漫游到活动 B 时,活动 A 完成。正如我在答案中提到的:“......开始你希望完成的活动时......”。与确认的答案相同。

android中的activity的启动方式有哪几种

参考技术AActivity启动模式有4种,分别为standard、singleTop、singleTask、singleInstance。1.standard默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Ac... 查看详情

activity的启动模式全解

在android中控制Activity的启动模式的属性主要控制两大功能:1,控制activity进入哪一个任务task中,  有三种可能,进入老任务task中,进入指定taskAffinity的task中,进入新task中2,控制activity多次启动的处理模式,   ... 查看详情

全面解析activity:activity的工作过程

参考技术A本文将对Activity的工作过程进行分析。主要学习以下内容:(1)系统内部是如何启动一个Activity的?(2)新Activity的对象是何时创建的?(3)Activity的各个生命周日是被系统何时回调的?Activity启动流程分两种,一种是启动正在运行的... 查看详情

activity的启动流程分析(代码片段)

Activity是Android应用程序的四大组件之一,负责管理Android应用程序的用户界面,一般一个应用程序中包含很多个Activity,他们可能运行在一个进程中,也可能运行在不同的进程中。我们主要通过启动在不同进程中的Activity,... 查看详情

android 小部件开始一个新的活动

...部件开始一个新的活动【英文标题】:androidwidgetstartsannewactivity【发布时间】:2014-06-1121:34:18【问题描述】:我可以通过使用PendingIntent在widget中单击view来调出activity如果activity尚未启动,android将创建一个新并调用onCreate(),我可... 查看详情

创建一个新的activity

1、创建一个类继承Activity类,并创建对应的布局文件,在onCreate方法中加载该布局。2、在AndroidManifest.xml声明该组件注:如果想配置一个activity在桌面上有该activity的启动图标需要在AndroidManifest.xml中配置该activity属性为<intent-filte... 查看详情

fragment中启动一个新的activity

...View(准确地说是Linearout)的单击事件,然后跳转到另外一个Activity,但是问题来了,不知道在哪个函数中去写。  平时我们的Activity都是重载onCreate()函数,但是在Fragment中重载的是onCreateView()函数,后来查了很多资料 查看详情

4)十分钟学会android--建立第一个app,启动另一个activity

...一课(建立简单的用户界面)后,我们已经拥有了显示一个activity(一个界面)的app(应用),该activity包含了一个文本字段和一个按钮。在这节课中,我们将添加一些新的代码到MyActivity中,当用户点击发送(Send)按钮时启动一个新... 查看详情

activity的启动模式

在清单文件(AndroidManifest.xml)文件中的activity节点里有个属性android:launchMode就是指定Activity的启动模式.其默认为标准模式(standard),以下是四种模式:*作用:影响activity在任务栈的顺序1.标准模式:standard开启目标activity页面,系统会创... 查看详情

android的service里面多次启动一个activity只能用flag_activity_new_task,那么怎么才能只启动一次呢?

...:我有一个Service监听短信,当来短信的时候就启动一个Activity1。并且我需要在Activity2里面也启动它。怎么么样才能只启动一个?当启动的Activity1被用户按了home被置于后台了,怎么才能在来短信的时候唤起它,而不是在启动一个... 查看详情

android编程中,为啥设置了intent.flag

...是一些常用的标志,不同的Flag有不同的用途。例如:FLAG_ACTIVITY_BROUGHT_TO_FRONT  这个标志一般不是由程序代码设置的,如在launchMode中设置singleTask模式时系统帮你设定。FLAG_ACTIVITY_CLEAR_TOP  如果设置,并且这个Activity已经在当... 查看详情

android-----intent中通过startactivity(intentintent)显式启动新的activity(代码片段)

Intent:即意图,一般是用来启动新的Activity,按照启动方式分为两类:显式Intent和隐式Intent显示Intent就是直接以“类名称”来指定要启动哪一个Activity:Intentintent=newIntent(this,activity.class);  其中activity.class就是要指定启动的a... 查看详情

android中应用程序activity的冷启动流程

参考技术AActivity的启动主要涉及四个进程SystemServer进程:主要负责管理整个FrameworkApp进程:app用户点击桌面icon时,通过Launcher进程请求SystemServer进程,再通知Zygote孵化的。Zygote进程:所有的应用进程都是有Zygote孵化出来的,而Zyg... 查看详情

在 Android App 中使用代码设置启动 Activity

】在AndroidApp中使用代码设置启动Activity【英文标题】:SetstartingActivitywithcodeinAndroidApp【发布时间】:2012-11-1103:47:42【问题描述】:我是开发Android应用程序的新手。我知道如何使用AndroidManifest.xml设置启动Activity,但我需要一种方... 查看详情

无法在 Android 库模块中启动 Activity

】无法在Android库模块中启动Activity【英文标题】:CannotLaunchActivityinAndroidLibraryModule【发布时间】:2015-01-1414:52:24【问题描述】:在我的Android应用项目中,我添加了一个模块,其中包含一个名为“SampleDataMenuActivity”的活动。此活... 查看详情

用于在android中启动新活动的多个intent标志(代码片段)

...tent中添加更多标志,以便在BroadcastReceiver中启动一个新的Activity,响应从应用程序的另一部分发送的特定意图。我已经注意到我在LogCat消息中注意到我创建的Intent中的FLAG_ACTIVITY_NEW_TASK标志然后是其他的但我在LogCat中得到了同样的... 查看详情

android开发中在accessibilityservice中启动activity失败

...用Intentintent=newIntent(Intent.ACTION_MAIN);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);在控制台只显示timelineactivity_launch_request并没有真正回到卓面,是不是在accessibilityservice中跳转不了到activity我... 查看详情

android怎么设置activity的启动模式

参考技术Aandroid怎么获取一个activity启动模式在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。Android总Activity的启动模式分为四... 查看详情