何种方式是启动 Activity 正确的方法?

3

假设我想要启动的Activity的名称为"占领派店"

我之前使用的方法启动一个Activity:

Intent oTPS = new Intent();
timeIntervalConfigIntent.setClassName("com.aXX3AndSpace.KeepInTouch",
    "com.aXX3AndSpace.KeepInTouch.OccupyThePieShop");
startActivity(oTPS);

...但是被告知这更加正常:

Intent oTPS = new
    Intent(KeepInTouchActivity.this, OccupyThePieShop.class); 
KeepInTouchActivity.this.startActivity(oTPS);

我曾经使用startActivity()进行调用,现在我将其替换为以下方式:

现在,我发现了另外几种看起来相当“优雅”的方法,它们分别是:

startActivity(new Intent(getApplicationContext(), OccupyThePieShop.class));

...和:

Intent intent = new Intent(this, OccupyThePieShop.class);
startActivity(intent);

有一种方法是否更受青睐,如果是的话,为什么呢?
1个回答

2

我认为这可能是个人偏好的问题。我喜欢startActivity(new Intent(this, OccupyThePieShop.class));,因为正如你所说,它很优雅。


1
只有在你明确知道需要它时,才使用 getApplicationContext()。对于 startActivity(),你不需要这个方法。请使用 this - CommonsWare
好的。 - BenH
我的“优雅”的方式无法编译。使用这行代码:startActivity(new Intent(this, ContactsListListActivity.class));我得到了“构造函数Intent(new View.OnClickListener(){},Class <ContactsListListActivity>)未定义”的错误提示。 - B. Clay Shannon-B. Crow Raven
这是唯一可以编译的方式: Intent ktiluca = new Intent(KeepInTouchActivity.this, KITTimeIntervalLocationUpdateConfigActivity.class); KeepInTouchActivity.this.startActivity(ktiluca); - B. Clay Shannon-B. Crow Raven
嗯...我会尝试调查一下这个问题。 - BenH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接