我正在寻找一种方法来获取我的Application
实施中的Android应用程序的意图。 Application
类本身没有getIntent()
只有Activities似乎有这种能力。
原因是我有一个有几个意图的应用程序,可以称为无状态。但是我需要用户登录。所以我想检查用户是否已登录,如果没有提交登录对话框,而不是在每个活动中破解相同的代码。
答案 0 :(得分:1)
在每个Activity
中拥有一些功能的方法是让它们都继承一个共同的超类,如下所示:
class LoginActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
if (getIntent().hasExtra(...)) {
doLogin();
}
}
class MyActivity extends LoginActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// user is now logged in
setContentView(...);
}
}
LoginActivity
仅用于您继承的其他活动,因此请勿在{{1}}中提及。{1}}。您无法在AndroidManifest.xml
中获得Intent
因为这样的事情毫无意义。只要您的进程正在运行,Application
对象就存在。在任何给定时间,您的活动可能只有零个,一个或多个,所以Application
会返回什么?
我必须承认,我对于Intent
与登录有什么关系感到有些疑惑。看起来你需要一个具有会话状态/凭证的全局对象,而不是与意图有关。
答案 1 :(得分:0)
您需要致电Launcher活动的getIntent()