通过Intent发送IntDef的最佳方法是什么?
ps:如果你只是将它作为一个int发送,你就会失去类型检查,这是拥有intdef的主要目标
答案 0 :(得分:0)
您的IntDef在运行时不可用。要做的就是在意图接收活动中封装意图的生成。
public class MyActivity extends Activity {
private static final String KEY_NAVIGATION_MODE = "navigation_mode";
private @NavigationMode int mNavigationMode;
public static Intent getStartIntent(Context context, @NavigationMode String navigationMode) {
Intent intent = new Intent(context, MyActivity.class);
intent.putExtra(KEY_NAVIGATION_MODE, navigationMode);
return intent;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//noinspection WrongConstant Safe because we saved it in #getStartIntent
mNavigationMode = getIntent().getIntExtra(KEY_NAVIGATION_MODE, NAVIGATION_MODE_YOUR_DEFAULT);
}
}