【问题标题】:About creating new Intent in android关于在an​​droid中创建新的Intent
【发布时间】:2013-07-15 12:25:37
【问题描述】:

我正在练习一些 android 开发。我在主要活动中创建了一个打开第二个活动的按钮:

我将此代码用于按钮:

 this.detailsBtn = (Button) findViewById(R.id.details_btn);
    this.detailsBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Intent k = new Intent(arg0.getContext(), DetailsActivity.class); 
            startActivity(k);
        }
    });

此代码在打开第二个活动时正常工作。我还在 DetailsActivity 中添加了一个返回主要活动的按钮。

this.mainListBtn = (Button) findViewById(R.id.main_list_btn);
    this.mainListBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Intent k = new Intent(arg0.getContext(), MainActivity.class); 
            startActivity(k);
        }
    });

这也可以正常工作。我的问题是我是否应该在每次按下任何按钮时创建新的 Intent,因为它看起来需要一些时间来打开新的活动?

有没有办法访问已经创建的意图而不是重新创建它?

【问题讨论】:

标签: android android-intent android-button


【解决方案1】:

仅将finish() 转入DetailsActivity

this.mainListBtn = (Button) findViewById(R.id.main_list_btn);
    this.mainListBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
           finish();
        }
    });

这也可以正常工作。我的问题是我应该创建新的 Intent 每次我按看起来需要的任何按钮时 有时间打开新活动吗?

您当前的应用程序运行良好,我同意。但是会发生的是,每次按下按钮时,新的 Activity 都会被添加到应用程序堆栈中。在你的情况下不应该发生这种情况。

【讨论】:

  • 完美运行,这正是我的应用程序所需要的。我有一个详细信息列表,因此在审查完详细信息活动后,应关闭并销毁它们。
【解决方案2】:

您可以访问之前打开的活动,也可以通过 onBackPressed() 调用;作用于之前的活动。

【讨论】:

  • 您不应调用 'onBackPressed() 来完成 Activity。只需致电finish()onBackPressed() 被 Android 框架调用。
  • finish() 是破坏当前活动。如果你在 startActivity() 之后调用了 finish() 方法,你不应该调用 onBackPressed() 并且它不起作用,因为之前的活动被破坏了。
  • 如果您调用onBackPressed(),那么您所做的就是在当前活动上调用finish()。但正如我所说,此方法旨在由 Android 框架调用,而不是由您的活动调用。它是可用的,以便您的活动可以在必要时覆盖它,而不是让您可以调用它
【解决方案3】:

如果您希望这两个 Activity 都存在并且不想调用 finish(),那么您可以简单地使用

将现有 Activity 带回前面
Intent i = new Intent(getActivity(), B.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);   
getActivity().startActivity(i);

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 2014-04-29
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多