我一直避免在class
extends Activity
之外调用startActivity
方法。
但是现在我有一个函数可以在401 Unauthorized
上putExtra
处理Intent
错误以传递错误,并startActivity
转换到我的登录/注册活动
此功能位于我的utils
模块中,位于自己的class
。
我应该从这个实用函数返回 - 一个像(err, result, route)
之类的结构,并在Activity
扩展类中处理状态转换逻辑吗?
编辑:就此而言,我没有将TextView
之类的元素传递给setText
的实用方法。相反,我返回String
并将其分配到class
的{{1}}。
一般来说,做一些影响活动外部视图/路由的事情是不好的做法吗?
答案 0 :(得分:0)
您可以在Activity子类之外调用startActivity。只要您有权访问上下文引用,就可以调用startActivity。在您的情况下,要么在util类中保留Activity的引用,要么使用该接口将数据传递回activity。
答案 1 :(得分:0)
绝对不是一个坏习惯。您可以在任何课程之外的startActivity。只需要确定你的活动堆栈。如果是401,您显然会清除堆栈,这会对活动堆栈造成损害。在其他情况下,只要对活动堆栈充满信心。