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

yunmenggyy 2014-09-14 11:57:28
今天学习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启动模式的问题吗??我查看了日志信息,可惜依然不知道怎么解释,希望大家解答!!小弟初学,还望海涵!
...全文
108 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
svenwang 2014-09-14
  • 打赏
  • 举报
回复
可能你在AndroidManifest.xml中把TwoActivity设置为Launcher了。
yunmenggyy 2014-09-14
  • 打赏
  • 举报
回复
引用 3 楼 hjywyj 的回复:
删掉TwoActivity下的 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
是的,就是这个原因,不过,这是为什么呢??activity入栈了么?然后呢?
  • 打赏
  • 举报
回复
删掉TwoActivity下的 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
yunmenggyy 2014-09-14
  • 打赏
  • 举报
回复
引用 1 楼 svenwang 的回复:
可能你在AndroidManifest.xml中把TwoActivity设置为Launcher了。
不是,我发现怎么在模拟器上有两个程序

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧