android启动通过URL,任何方法使getIntent()。getScheme()手动为null?

时间:2014-02-24 09:41:54

标签: android url android-intent

我正在编写一个应用程序,也可以通过点击电子邮件/短信中的URL开始。点击特定链接后,我将转到 LoginActivity 屏幕,我需要使用我的凭据登录。我正在获取必要信息以在我的LoginActivity中启动应用程序

String scheme = getIntent().getScheme()
Uri myURI = intent.getData()
String queryString = myURI.getQuery() 

从这个'queryString'我得到了要显示的应用程序的必要细节。 比如,

final String[] urlParameters = queryString.split("&");
String studentId = urlParameters[0].split("=")[1];  
String StudentClass = urlParameters[1].split("=")[1];
String studentSem = urlParameters[2].split("=")[1];

从网址获取必要的详细信息后,我将 ApprovalActivity 批准学生的离开。批准后,我正在调用 this.finish()到finsh和旧的来自活动堆栈的 LoginActivity 。当我再次点击使用我的凭据登录时,实际上我应该去 InboxActivity 页面,在那里我可以看到学生的所有待处理的lave请求。

但是,问题在于,如果我在执行批准/拒绝后从URL启动应用程序,当我再次登录时,无需关闭并重新打开应用程序,它会像以前一样转到ApprovalActivity直到我重新启动应用程序,而不是启动InboxActivity。我发现原因是 getIntent()。getScheme()仍然具有旧值,该值是从URL中提供的。

我的问题是,有没有办法制作

getIntent().getScheme()= null 

手动。即,在第一次登录后,(通过URL)任何方式使getIntent()。getScheme()为null?

0 个答案:

没有答案