这是不是一种创建意图的奇怪方式



我有一个图书馆项目和一个项目,每个项目为我的一个应用程序的免费和付费版本。在图书馆项目中,我有一个"基础活动"。这个"基础活动"必须启动子活动取决于它是免费还是付费版本。

我所做的是就在我用startActivity()触发意图之前,我调用了'Base Activity'中的一个方法,它必须返回意图。我在"Base Activity"子类(付费和免费版本)中重写了这个方法,并创建了这样的意图:

return new Intent(subClassOfBaseActivity.this, ChildClassA.class);

:

return new Intent(subClassOfBaseActivity.this, ChildClassB.class);

现在,我的问题是,它是ok的创建意图通过传递它subclasssofbaseactivity。这个代替BaseActivity。

吗?

这个方法总体上ok吗?

当您创建一个新的Intent时,您需要传递ContextActivity

现在上下文是一个接口,它允许应用程序访问一些资源。

基本上在你的情况下,你正在传递一个context和activity,但是你问你是否需要传递baseActivity作为context。因为android developer:

这一行

Interface to global information about an application environment你需要传递基本活动作为上下文。

另一方面,子类可能是从baseClass继承的,所以上下文应该是相同的,但是当你传递baseClass作为上下文时,它会更容易读和清晰。

查看有关上下文的更多信息http://developer.android.com/reference/android/content/Context.html

可以。这个构造函数接受Activity扩展的第一个参数Context。所以你传递的参数是Context而不是Activity

没关系。

Java会将第一个参数强制转换为Context (Activity扩展Context),所以这无关紧要。你也可以用getBaseContext()代替Activity。这有. .

相关内容

最新更新