【问题标题】:Reusing old intents android重用旧意图android
【发布时间】:2012-04-02 15:33:32
【问题描述】:

所以我在我的两个表单上有一个后退和下一个按钮,在第一个表单上,当你按下下一个时它会加载第二个表单,现在如果你在第二个表单上按下后退按钮它会加载第一个表单,但是现在同一个表单有两个意图。如何防止这种情况发生?

第一个表单开始按钮:

  final Button start = (Button) findViewById(R.id.start);
    start.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent i= new Intent(getApplicationContext(), step_1_to_4.class);
            startActivity(i);



        }
        });

第二种形式的后退按钮如下:

    final Button back = (Button) findViewById(R.id.step1_back_button);
    back.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            Intent i= new Intent(getApplicationContext(), HKA_manual_Calibration_v2_no_tabsActivity.class);
            startActivity(i);
        }
    });

因此,当用户在这两个活动之间来回切换时,会导致创建多个活动。

【问题讨论】:

  • 查看你可以在 androidmanifest.xml 中做什么,“SingleTask”和“SingleInstance”等

标签: android forms android-intent reusability


【解决方案1】:

从上面的代码中,您的情况只有 一个 意图,即为第二种形式启动活动。当您按下 back 键时,它实际上会恢复您之前的活动,谁的意图已经存在(存在于该活动中)并且可以通过 getIntent() 检索

【讨论】:

  • 我遇到的问题是,当您使用 android OS 后退按钮时,会有多种形式的相同活动。在这种情况下,我对 getIntent() 的用途感到有些困惑。
  • 在清单中将android:launchMode="singleInstance" 设置为您的活动属性
【解决方案2】:

android:launchMode="singleInstance"

在活动清单文件中添加上述行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    相关资源
    最近更新 更多