首页 > 代码库 > 这是Avtivity启动模式引起的问题吗??????????

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


====================问题描述====================
今天学习Intent时遇到一个问题很是疑惑,问题描述:
先看效果图:



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

mainFrame:
public class MainActivity extends Activity {String Tag="MainActivity";@Overrideprotected 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);}@Overridepublic 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);}@Overridepublic 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>

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