这是Avtivity启动模式引起的问题吗??????????

============问题描述============

今天学习Intent时遇到一个问题很是疑惑,问题描述:

先看效果图:

店家按钮会用Intent来启动并传递一个参数"guanguan"给另外一个Activity,启动模式都是采用的默认的standard,界面简单,两个界面的控制代码如下:

mainFrame:

public class MainActivity extends Activity {

	String Tag="MainActivity";

	@Override

	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);

		Log.v(Tag, "mainOnCreate");

		Button bt=(Button)findViewById(R.id.button1);

		bt.setOnClickListener(new View.OnClickListener() {

			public void onClick(View v) {

				Intent intent=new Intent(getApplicationContext(),TwoActivity.class);

				intent.putExtra("name", "guanguan");

				startActivity(intent);

			}

		});

		//bt.setOnClickListener(l);

	}

	@Override

	public boolean onCreateOptionsMenu(Menu menu) {

		// Inflate the menu; this adds items to the action bar if it is present.

		getMenuInflater().inflate(R.menu.main, menu);

		return true;

	}

	public void onResume()

	{

		super.onResume();

		Log.v(Tag, "mainOnResume");		

	}

	public void onPause()

	{

		super.onPause();

		Log.v(Tag, "mainOnPause");		

	}

	public void onStop()

	{

		super.onStop();

		Log.v(Tag, "mainOnstop");

	}

	public void onDestory()

	{

		super.onDestroy();

		Log.v(Tag, "mainonDestory");

	}

	public void onRestart()

	{

		super.onRestart();

		Log.v(Tag, "mainonRestart");

	}

}

另外一个Avtivity代码

public class TwoActivity  extends Activity{

	String Tag="MainActivity";

	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.two_activity);

		Log.v(Tag, "TwoOnCreate");

		TextView textview=(TextView)findViewById(R.id.textView2);

		Intent intent=getIntent();

		String name=(String) intent.getCharSequenceExtra("name");

		textview.setText("欢迎你"+name);

	}

	@Override

	public boolean onCreateOptionsMenu(Menu menu) {

		getMenuInflater().inflate(R.menu.main, menu);

		return true;

	}

	public void onResume()

	{

		super.onResume();

		Log.v(Tag, "twoOnresume");

	}

	public void onPause()

	{

		super.onPause();

		Log.v(Tag, "twoOnPause");

	}

	public void onStop()

	{

		super.onStop();

		Log.v(Tag, "twoOnstop");

	}

	public void onDestory()

	{

		super.onDestroy();

		Log.v(Tag, "twoonDestory");

	}

	public void onRestart()

	{

		super.onRestart();

		Log.v(Tag, "twoonRestart");

	}

}

问题:

第一次点击button时参数传过去了。之后,我点击返回键,回到mainFrame,再次点击,回到桌面。我再次启动这个程序,奇怪的是现在直接进入第二个界面,并且参数的值为null了!!!!这是Activity启动模式的问题吗??我查看了日志信息,可惜依然不知道怎么解释,希望大家解答!!小弟初学,还望海涵!

============解决方案1============

可能你在AndroidManifest.xml中把TwoActivity设置为Launcher了。

============解决方案2============

删掉TwoActivity下的

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

时间: 2024-10-15 11:06:51

这是Avtivity启动模式引起的问题吗??????????的相关文章

Avtivity的四中启动模式

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: [html] view plain copy Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard"

第一章:Activity的生命周期和启动模式

Activity是Android中四大组件之首,所以需要重视,尤其是启动方式,在AndroidManifest.xml中的注册信息 (一)Activity的生命周期 1.1.1 正常情况下的生命周期 说明 (1)针对一个特定的Activity,第一次启动顺序:onCreate->onStart->onResume. (2)当用户打开新的Activity或者切换到桌面的时候,回调如下:onPause->onStop (3)返回原Activity时,回调如下:onRestart->on

深入Activity,Activity启动模式LaunchMode完全解析

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53221384 本文出自[DylanAndroid的博客] 深入Activity,Activity启动模式LaunchMode完全解析 在平时的开发中,我们可能会了解到Activity的任务栈还有Activity的启动模式.那么Activity的启动模式都分别是怎么样的呢?如果设置了这些启动模式对任务栈有事么影响 ,还有就是这么启动模式在实际的开发中有什么应用呢?这里用图例和d

Android Activity生命周期与启动模式

Activity的完整生命周期如下图: Activity的加载模式有四种: standard: 标准模式,默认的加载模式,每次通过这种模式启动目标Acitivity,都创建一个新的实例,并将该Activity添加到当前栈中. singleTop: 与标准模式类似,只有当Activity位于Task顶时,系统不会重新创建目标Activity的示例,而是直接复用已有的Activity实例. singleTask: 如果要启动的Activity不存在,系统创建Activity实例,并将它加入栈顶 如果

android学习笔记 activity生命周期&amp;任务栈&amp;activity启动模式

activity生命周期 完整生命周期 oncreate->onstart->onresume->onpause->onstop->ondestory 使用场景:应用程序退出自动保存数据 ondestory oncreate 可视生命周期 onstart->onresume->onpause->onstop 使用场景:应用程序最小化 暂停的操作 onstop onstart 前台生命周期 onresume->onpause 界面用户仍然可见,但是失去焦

Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面

其实这是很简单的一个问题.但是这还是要对android中activity的启动模式有相当的理解才行,当点击home键的时候,懂Android的人都知道,他会把当前activity放到后退栈中, 栈(Stack)又称堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算.人们把此端称为栈顶,栈顶的第一个元素被称为栈顶元素,相对地,把另一端称为栈底.向一个栈插入新元素又称为进栈或入栈,它是把该元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称为出栈或退栈,它是把栈

activity启动模式之singleTop

activity启动模式之singleTop 一.简介 二.设置方法 在AndroidManifest.xml中将要设置为singleTop启动模式的页面进行配置 <activity android:name="activityLaunchSingleTop.ActivityB2" android:launchMode="singleTop"></activity> 三.代码实例 效果图: 代码: activityLaunchSingleTo

Android入门:Activity四种启动模式

Android入门:Activity四种启动模式 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standard.singleTop.singleTask.singleInstance: 讲解启动模式之前,有必要先讲解一下“任务栈”的概念; 任务栈 每个应用都有一个任务栈,是用来存放Activity的,功能类似于函数调用的栈,先后顺序代表了Activity

(Android第一行代码)活动的启动模式

活动的启动模式 启动模式一共有四种,分别是 standard.singleTop. singleTask 和 singleInstance,可以在 AndroidManifest.xml 中通过给<activity>标签指定 android:launchMode属性来选择启动模式.下面我们来逐个进行学习. 1.standard模式:(对于使用 standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建 该活动的一个新的实例.)   是活动默认的启动模式  修改