2016-12-08 4 views
2

ここには次のものがあります:ランチャーアクティビティは、ディープリンクを使用して2回開きます

アプリケーションのランチャーアクティビティであるエンドポイントでディープリンクを実装する必要があります。

だからマニフェストで、ランチャーアクティビティタグにあります:アクティビティのonCreateメソッドから

 <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 

      <data android:scheme="scheme" /> 
     </intent-filter> 

スニペット:

 if (getIntent() != null) { 
      // Url scheme 
      if (Intent.ACTION_VIEW.equals(getIntent().getAction())) { 
       // Process the deelink 
      } else { 
       // Do something else 
      } 
     } 

問題:活動は良いで2回、1を開き、 (ACTION_VIEW)と1つなし

私はsingle_top、single_task、single_instanceのようなタグを使ってみましたが、悪意のあるインテントのみが起動されました(デフォルトランチャー意図)。


一度に2つのインテントフィルタがトリガーされるようにするにはどうすればよいですか?

+0

実際にディープリンクを解析するアクティビティのコードを投稿できますか? –

+0

アクティビティは2回作成してはいけないので、無関係でなければなりません...しかし、コードフォームの前の部分を作成しますonCreate –

+0

申し訳ありません。 Answer –

答えて

0

したがって、あなたは2 intent-filtersです。これが本当であるならば、私は知らないが、私はディープリンクを処理する方法は次です:

は方法

DeepLinkActivity.class 

OnCreate()

新しいアクティビティを作成し、コンテンツのビューを設定しないでください、この活動は唯一となりますあなたが解析したい逆展開を解析するためのものです。そこからインテントを作成し、次に開くアクティビティにデータを渡します。それがどんな形であれ助けてくれることを願います。あなたの場合は、編集

、その活動のためのコンテンツのビューを設定していない、今、インテントフィルタ

<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="scheme" /> </intent-filter> 

彼を追加し、新しいアクティビティDeepLinkActivityを作成するには、から入手ディープリンク解析getIntent()メソッドを使用して、必要なアクティビティをすべて実行してください。開始の意図はありません。

+0

私の場合は問題は解決しません。ランチャーの意図は引き続きトリガーされます。私が達成しようとしているのは、必要がないときにランチャーの意図を引き起こさないようにすることです(アクションビューインテントのディープリンクがある場合) –

+0

編集した回答を参照してください –

+0

私はあなたのソリューションをテストしています。それは動作するようです。私は、ディープリンクを管理するための新しいアクティビティを作成し、finish()しました。しかし、アプリの開始時に瞬きのようなグラフィックのバグがあります...私はそれのための放送受信機を使用することはできません? :/ –

関連する問題