1

当说“应用程序快捷方式”时,我的意思是: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 也有一些流程,它执行一些操作,然后它允许从导航抽屉菜单中选择要显示的内容。用户需要执行一些操作,这取决于应用程序是否首次启动(强制从列表中选择城市,从后端加载城市列表)。

现在我需要开发具有以下意图的静态应用程序快捷方式:

  • 事件列表(这是默认行为,如果没有选择城市,则在用户登录并选择城市后 - 第一次运行,或从之前使用的城市加载数据)
  • 消息列表 - 用户需要选择相应的菜单选项来加载消息列表(它会导致 rest webservice 调用来加载消息)

我被卡住了,因为我不知道如何实现意图以保留所有必需的步骤。我不能只声明启动 MainActivity 的意图,它不会起作用,因为这将导致立即启动 MainActivity,无需任何初始化,获取访问令牌等。

有小费吗?

4

1 回答 1

0

好的,所以我通过为每个意图设置操作来管理它,然后填充操作名称以决定应该启动哪个选项。我认为这是最简单的解决方案

于 2017-08-02T08:56:12.363 回答