应在何处进行意图处理

时间:2014-08-05 16:43:34

标签: android android-intent android-activity

打开活动时,您可以通过Intent对象传递参数,例如

Intent intent = new Intent(context, UserImagesActivity.class);
intent.putExtra("user_id", 5);
startActivity(intent);

这将启动一个呈现用户#5图像的活动。 然后在活动中你可以做类似的事情:

String userId = getIntent().getIntExtra("user_id", 0);
User user = findUserById(userId);
renderImages(user.getImages());

现在我的问题是,处理意图的最可靠的地方在哪里?应该在onCreateonResume还是onStart

中完成

2 个答案:

答案 0 :(得分:0)

访问磁盘或解码图像等密集型工作应该在一个单独的线程上完成,其他线程依赖于您的逻辑,但您也不应该在onResume和onPause上做太多工作,以使UX顺利进行并快速切换。

答案 1 :(得分:-1)

答案是取决于。 onCreate()默认情况下不是处理这种情况的最佳位置。 如果您具有活动的默认设置,那么是onCreate()似乎是一个合理的选择。但是,如果您的活动是 singleTop singleInstance ,例如您的示例可能就是这种情况,那么我能想到的最佳位置是onNewIntent()所以如果您需要更新来自其他活动的图片并按startActivity()导航回原始活动,onCreate()方法将不会被调用onNewIntent()。正如@mmlooloo指出onNewIntent()但是第一次创建活动时不会调用它。因此,除非将其标记为LUNCH,否则您可能还必须处理该案例onCreate()