android - 在同一范围内重复使用 Intent 变量是否危险?

标签 android android-intent

我正在使用以下 switch case 来处理不同的按钮,并在每种情况下启动一个 Activity 。

我想知道——我是否应该将 Intent 对象 (i) 移到外面——也许作为私有(private)类属性并重新使用它?或者,我是否应该将每个案例都括在方括号中,以便我可以重新使用名称“i”而无需为其附加唯一名称?哪个更安全/更好?重复使用同一对象是否存在风险?

@Override
public void onClick(View v) {
    switch (v.getId()){

    case R.id.button_numbers:
        Intent i = new Intent(v.getContext(), DrillActivity.class); 
        i.putExtra("word_list", R.raw.wl_numbers);
        startActivity(i);
        break;

    case R.id.button_colors:
        Intent i2 = new Intent(v.getContext(), DrillActivity.class); 
        i2.putExtra("word_list", R.raw.wl_colors);
        startActivity(i2);
        break;

    case R.id.button_daysmonths:
        Intent i3 = new Intent(v.getContext(), DrillActivity.class); 
        i3.putExtra("word_list", R.raw.wl_daysmonths);
        startActivity(i3);          
        break;

    default: 
        break;
    }
}

最佳答案

我会这样做:

@Override
public void onClick(View v) {
    Intent i = new Intent(v.getContext(), DrillActivity.class);
    switch (v.getId()){
        case R.id.button_numbers:
            i.putExtra("word_list", R.raw.wl_numbers);
            break;
        case R.id.button_colors:
            i.putExtra("word_list", R.raw.wl_colors);
            break;
        case R.id.button_daysmonths:
            i.putExtra("word_list", R.raw.wl_daysmonths);
            break;
        default: return;
    }
    startActivity(i);
}

我觉得更清楚了。

关于android - 在同一范围内重复使用 Intent 变量是否危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363826/

相关文章:

android - 广播接收器和未决 Intent : Show a toast

android - 从图库中选取图像时,Intent extras 为空

java - if/switch 评估是原子的吗?

android - "is"按钮未显示在 Android 应用程序的确认框中?

android - 无法解析目标 'android-8'

Android:通过代码动态关闭虚拟键盘?

android - 将 base64 图像从 Android 发布到 Azure 移动后端

android - 除了第一个之外,所有 Intent 都收到了不正确的额外内容

android - 如何过滤 ACTION_SEND Intent 的特定应用程序(并为每个应用程序设置不同的文本)

java - 澄清 Android Activity onPause 和 onRestart