onBackPressed()没有调用新活动

时间:2014-09-23 07:19:50

标签: android android-intent onbackpressed

我的项目中有2项活动。按后退按钮时,我想调用一个新活动。我尝试了onBackPressed(),onKeyDown()。我的代码如下。我在谷歌搜索过这个,但没有任何对我有用。

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        Log.d("update", is_updated.toString());
        if(is_updated){
            Intent i = new Intent(ProductDetailsActivity.this,ProductListActivity.class);
            startActivity(i);
            finish();
            is_updated = false;
        }else {
            finish();
        }
    }

我记录了值“is_update”,即使值为“true”它也没有调用ProductListActivity.class,相同的代码正在用于按钮click.How我可以在onBackpressed()中调用新活动,任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

正如@Raghunandan所说。我在这里解释他的话。如果您要更新之前activity中的数据,请使用startActivityForResult,然后致电finish()override finish()并使用setResult(RESULT_OK),如:

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        Log.d("update", is_updated.toString());
        if(is_updated){

            finish();
            is_updated = false;
        }
    }

@Override
    public void finish() {
        super.finish();

       Intent intent = new Intent();
       intent.putExtra("updated_data", "data");//set whatever your updated data is
       setResult(RESULT_OK, intent);
    }

现在回到之前的activity覆盖onActivityResult方法。我想你知道onActivityResult方法及其用法,如果没有从here

中读取它

希望你能得到理想的结果。