使用onNewIntent实现startActivityForResult的返回传值
16lz
2021-01-24
首先创建两个Activity,分别为MainActivity和BActivity
在AndroidManifest.xml文件配置MainActivity的启动方式为android:launchMode="singleTask"
在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); }
/*
* 点击Button更新TextView的文本内容 需在MainActivity--BActivity--MainActivity跳转之后执行
*/
public void click2(View view){ maintxt = (TextView) findViewById(R.id.main_show_txt); maintxt.setText(text); } /*
* 重写onNewIntent(Intent intent)方法
*/
@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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_b);}
/*
* 点击获取MainActivity中传来的值
*/
public void click(View view){Intent intent = getIntent();msg = intent.getStringExtra("word");Btxt = (TextView) findViewById(R.id.b_show_txt);Btxt.setText(msg);} /*
* 点击跳转到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的返回值
更多相关文章
- Android系统WIFI设置源码解析
- Android(安卓)layout、onLayout 一些简要说明
- Android触摸事件小小画板(7)
- Android(安卓)okhttp3 进行socket connect&poll的底层实现跟踪
- Android(安卓)输入系统解析 (2)
- EventBus源码解析(基于Android(安卓)O)
- 耳机插拔
- Android(安卓)简单定制OptionMenu外观
- Cocos2d-x android使用onKeyDown监听返回键实现二次返回退出