发送这是在研究背景运行数据活动 [英] Send data to activity which is running in backgroud

查看:108
本文介绍了发送这是在研究背景运行数据活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有活动之间传递数据的麻烦 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 dont 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆