Android - App for Shorcuts的意图

时间:2017-08-02 07:02:01

标签: java android android-intent android-appshortcut

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

现在我需要开发具有意图的静态app shourtcuts:

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

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

任何提示?

1 个答案:

答案 0 :(得分:0)

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