说“应用程序快捷方式”时,我的意思是:https://developer.android.com/guide/topics/ui/shortcuts.html
我的应用程序具有以下流程:
启动SplashActiviy并进行一些必需的初始化(例如检查Google Play服务是否可用等)。
在SplashActivity中,通过以下方式启动LoginActivity:
@Override
protected void onCreate(Bundle savedInstanceState)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) requestWindowFeature(Window.FEATURE_CONTENT_TRANSITIONS);
super.onCreate(savedInstanceState);
if(checkPlayServices()==false)
{
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
getWindow().setExitTransition(new Fade());
}
Intent intent = new Intent(this, LoginActivity.class);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this);
ActivityCompat.startActivity(this, intent, options.toBundle());
ActivityCompat.finishAfterTransition(this);
}
}
然后启动我的LoginActivity。 LoginActvity通过Firebase处理用户登录-用户可以选择使用Google,Facebook或电子邮件登录。成功登录到Firebase后,我的应用程序调用rest webservice从我的服务器获取访问令牌,然后启动MainActivity并将访问令牌传递给它。还有
FirebaseAuth.AuthStateListener
用于处理应用程序启动时的自动登录(直到用户注销),而不要求提供任何凭据。 MainActivity也有一些流程,它执行一些操作,然后允许从导航抽屉菜单中选择要显示的内容。用户需要执行一些操作,这取决于应用程序是否首次启动(强制从列表中选择城市,从后端加载城市列表)。现在,我需要为以下目的开发静态应用程序快捷方式:
事件列表(这是默认行为,在用户登录并选择城市(如果未选择城市的情况下,这是默认行为)-首次运行,或从之前使用的城市中加载数据)
邮件列表-用户需要选择相应的菜单选项以加载邮件列表(这会导致其余的Web服务调用加载邮件)
我被困住了,因为我不知道如何实现意图来保留所有必需的步骤。我不能仅仅声明要启动MainActivity的意图,因为它将导致立即启动MainActivity,而无需任何必需的初始化,获取访问令牌等,因此它无法工作。
有小费吗?
最佳答案
好的,所以我通过为每个意图设置动作来管理它,然后填充动作名称来确定应该启动哪个选项。我认为这是最简单的解决方案