我在获取应用的当前上下文时遇到问题。我有一个对象,我在多个地方引用/使用。在应用程序的任何位置使用时,如果用户的凭据已过期,它可能会返回KEY_STATUS_FAILED。在这种情况下,我希望用户当前所在的页面将其重定向到登录屏幕以重新建立凭据。我已经尝试了几个函数来获取基本上下文但没有成功(目前使用getApplicationContext()
)。感谢所有帮助!
//In common execution thread, after reading return from HTTP Post call
int stat = Integer.parseInt(checker.getString("status"));
if(stat == KEY_STATUS_FAILED){
Log.d("Process t", "Key Status Failed");
Intent i = new Intent(getApplicationContext(), LogInPage.class);
startActivity(i); //this never occurs
}
我目前正在获取它已输入密钥状态失败if-loop的日志输出。但是,我的申请并未重定向LogInPage.class
。我确信这是基本的,我只是犯了一个愚蠢的错误,但我对此很新,所以谢谢大家的帮助。
答案 0 :(得分:2)
您提供的应用程序上下文不负责启动活动。您需要使用活动上下文来执行此操作。
尝试使用:
Intent i = new Intent(this, LogInPage.class);
startActivity(i);
或Intent i = new Intent(getActivity(),LogInPage.class);
或尝试在您的活动类中创建一个全局上下文变量并使用它或尝试这个:
Intent i = new Intent(((YourActivity) getActivity()), LogInPage.class);