【问题标题】:onBackPressed() not calling new activityonBackPressed() 不调用新活动
【发布时间】:2014-09-23 07:19:49
【问题描述】:

我的项目中有 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,相同的代码适用于按钮单击。我如何在 onBackpressed() 中调用新活动,谁能帮忙我。

【问题讨论】:

  • 你为什么要开始一个新的活动。后退按钮应该带你到以前的活动
  • 我知道,我想更新之前活动中的一些数据
  • 然后使用startActivityForResult
  • “ProductDetailsActivity”将数据更新到服务器。我想再次启动 ProductListActivity.class。然后只有列表得到更新。
  • 真的很抱歉,伙计们实际上我必须先调用 AsyncTask 才能更新服务器中的数据,然后在 Postexcecute 上调用 Intent。对于这个错误并浪费您的时间,我深表歉意。

标签: android android-intent onbackpressed


【解决方案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 阅读它

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

【讨论】:

  • 我不想要该活动的数据,如果第二个活动(到服务器)中有任何更新,我想在按下后退按钮时重新启动第一个活动。
  • 但我提到,我想在 onbackpressed() 中开始一个新活动
  • start a new activity in onbackpressed()..这里提到的服务器在哪里?首先清除您的问题...
  • 正如我在问题中提到的,我只想在按下返回按钮时重新启动一个活动。与服务器无关。当我按下返回按钮时,我想重新启动或开始一项活动。
猜你喜欢
  • 2022-01-07
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多