インテントフィルタを使用してアプリケーション用のカスタムURLスキームを設定しました。 URLがWebViewのカスタムスキーム(mockup:// pagechange)に変更されると、インテントフィルタはアプリケーションの意図を正しくフィルタリングし、自分のアクティビティの新しいインスタンスを起動します。しかし、私が実際にやりたいことは、新しいアクティビティを起動するのではなく、インテントフィルタが既存のアクティビティ内でコードを実行することです。これは可能ですか?もしそうなら、どうすれば設定できますか?そうでない場合は、WebViewのURLが 'mockup'で始まるものに変更されたときにコードを実行するタスクを達成するための他のアイデアはありますか?新しいアクティビティを起動せずにURLを変更(カスタムスキーム)するコードを実行しています
私はインテントフィルタで他のアクションを使用しようとしましたが、URLが変更されたときに私のWebViewに表示されている "Webページを利用できません"というページが表示されました(RUNとATTACH_DATA)。また、私がここで見つけたインテント・フィルター/カスタム・スキームの質問は、カスタム・スキームでURLを使って新しいアクティビティーを開始する方法を理解することで対処するのが難しくなります。
ありがとうございます!
launchModeオプションは確かに私が何をしたいかのように思える(活動の新しいインスタンスを起動しますが、単にメソッドを呼び出していない - onNewIntent()でこの場合)。しかし、どこでフラグを設定するのですか?私は明示的に新しいアクティビティを作成しているわけではありません.WebViewのURL変更のアクションをカスタムスキームにキャッチしようとしています。実際にはコード内にインテントオブジェクトを設定することはありません。 –
もちろん、もちろんそうです。他の活動を開始することだけを目的とする新しい活動を作成してください。したがって、新しいアクティビティでは、UIを表示しないで、インテントを処理した後にstartActivityを呼び出して、トップアクティビティに転送してください。 – dhaag23