首先创建两个Activity,分别为MainActivity和BActivity
在AndroidManifest.xml文件配置MainActivity的启动方式为android:launchMode="singleTask"
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:launchMode="singleTask" >
<intent-filter
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在MainActivity中写两个Button 点击事件
public class MainActivity extends Activity {
private TextView maintxt;
public String text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/*
* 点击Button跳转到BActivity
*/
public void click(View view){
Intent intent = new Intent(this, BActivity.class);
intent.putExtra("word", "hello");
startActivity(intent);
}
<pre name="code" class="html"> /*
* 点击Button更新TextView的文本内容 需在MainActivity--BActivity--MainActivity跳转之后执行
*/
public void click2(View view){ maintxt = (TextView) findViewById(R.id.main_show_txt); maintxt.setText(text); }
<pre name="code" class="html"><pre name="code" class="html"> /*
* 重写<span style="font-family: Arial, Helvetica, sans-serif;">onNewIntent(Intent intent)方法</span>
*/
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); text = intent.getStringExtra("word"); }}
在BActivity中写两个Button点击事件
public class BActivity extends Activity {
private TextView Btxt;
public String msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
}
<pre name="code" class="html"><pre name="code" class="html"> /*
* 点击获取MainActivity中传来的值
*/
public void click(View view){Intent intent = getIntent();msg = intent.getStringExtra("word");Btxt = (TextView) findViewById(R.id.b_show_txt);Btxt.setText(msg);}
<pre name="code" class="html"><pre name="code" class="html"> /*
* 点击跳转到MainActivity
*/
public void click2(View view){Intent intent = new Intent(this, MainActivity.class);intent.putExtra("word", "hello,too");startActivity(intent);}
如果 BActivity 处于任务栈的顶端,也就是说之前打开过的 Activity ,现在处于 onPause、 onStop 状态的话, 其他应用再发送 Intent 的话,执行顺序为:onNewIntent,onRestart,onStart,onResume。这是就实现了startActivityForResult的返回值