我正在编写一个应用程序,也可以通过点击电子邮件/短信中的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?