使用onNewIntent实现startActivityForResult的返回传值

首先创建两个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的返回值


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值