将数据发送至活动是在后台运行 [英] Send data to activity which is running in background
问题描述
有活动之间传递数据的麻烦。
ListActivity正在收集数据,并在后退按钮pressed返回MainActivity,然后想通过onResume方法的数据,但我没有得到任何东西。
这怎么解决?
ListActivity.java
@覆盖
公共无效完成(){
I =新意图(ArrayListActivity.this,MainActivity.class);
i.putParcelableArrayListExtra(Constants.TAG_SELECTED_PRODUCT_LIST,selected_list);
super.finish();
}
MainActivity.java
@覆盖
保护无效onResume(){
super.onResume(); 捆绑额外= getIntent()getExtras()的getBundle(Constants.TAG_SELECTED_PRODUCT_LIST)。
如果(临时演员!= NULL){
selected_list = extras.getParcelableArrayList(Constants.TAG_SELECTED_PRODUCT_LIST);
myListView.setAdapter(新ProductAdapter(MainActivity.this,
R.layout.array_lisviewt_item_row,selected_list));
}
}
您可能想通过从第一个开始你的第二个活动的<一个href=\"https://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int,%20android.os.Bundle%29\"相对=nofollow> startActivityForResult(...)
方法。
此方法允许你从启动的活动运送结果返回到它的发射活动。
从文档:
启动,而您希望的结果,当它完成了一个活动。
当这个活动退出,你的<一个href=\"https://developer.android.com/reference/android/app/Activity.html#onActivityResult%28int,%20int,%20android.content.Intent%29\"相对=nofollow>的onActivityResult()方法会
调用给定的请求code。使用负请求code是
与调用startActivity(意向)(该活动不会推出,
一个子活动)。
块引用>Having trouble passing data between activities. ListActivity is collecting data and when back button is pressed returns to MainActivity and then want to get that data via onResume method but I don't get anything.
How can this problem be solved?
ListActivity.java
@Override public void finish() { i = new Intent(ArrayListActivity.this, MainActivity.class); i.putParcelableArrayListExtra(Constants.TAG_SELECTED_PRODUCT_LIST, selected_list); super.finish(); }
MainActivity.java
@Override protected void onResume() { super.onResume(); Bundle extras = getIntent().getExtras().getBundle(Constants.TAG_SELECTED_PRODUCT_LIST); if(extras != null) { selected_list = extras.getParcelableArrayList(Constants.TAG_SELECTED_PRODUCT_LIST); myListView.setAdapter(new ProductAdapter(MainActivity.this, R.layout.array_lisviewt_item_row, selected_list)); } }
解决方案You probably want to start your second activity from the first one via the
startActivityForResult(...)
method.This method allows you to transport results from a launched activity back to it's launching activity.
From the documentation:
Launch an activity for which you would like a result when it finished. When this activity exits, your onActivityResult() method will be called with the given requestCode. Using a negative requestCode is the same as calling startActivity(Intent) (the activity is not launched as a sub-activity).
这篇关于将数据发送至活动是在后台运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!