我应该避免在Activity类之外的`startActivity`吗?

时间:2016-09-26 11:50:19

标签: android android-intent android-activity design-patterns workflow

我一直避免在class extends Activity之外调用startActivity方法。

但是现在我有一个函数可以在401 UnauthorizedputExtra处理Intent错误以传递错误,并startActivity转换到我的登录/注册活动

此功能位于我的utils模块中,位于自己的class

我应该从这个实用函数返回 - 一个像(err, result, route)之类的结构,并在Activity扩展类中处理状态转换逻辑吗?

编辑:就此而言,我没有将TextView之类的元素传递给setText的实用方法。相反,我返回String并将其分配到class的{​​{1}}。

一般来说,做一些影响活动外部视图/路由的事情是不好的做法吗?

2 个答案:

答案 0 :(得分:0)

您可以在Activity子类之外调用startActivity。只要您有权访问上下文引用,就可以调用startActivity。在您的情况下,要么在util类中保留Activity的引用,要么使用该接口将数据传递回activity。

答案 1 :(得分:0)

绝对不是一个坏习惯。您可以在任何课程之外的startActivity。只需要确定你的活动堆栈。如果是401,您显然会清除堆栈,这会对活动堆栈造成损害。在其他情况下,只要对活动堆栈充满信心。