Linkify
'dリンクで自分のメソッドを呼び出す方法はありますか?それとも他のアクティビティ/アプリなどへのリンクを作成するためActivity
にのみ使用できますか?Linkify
4 に答える
これのいくつかの部分がうまくいったようです。欠落している部分は、フォアグラウンドにある既存のアクティビティがインテントを受け取っているようです。これを行うには、マニフェスト()でアクティビティをsingleTopとして宣言しますandroid:launchMode="singleTop"
。
したがって、ワークフローは次のようになります。
1)addLinksを使用して、正規表現、Linkify.Matcher、およびLinkify.TransformFilterを使用してテキストをリンクします。
2)クリックされたリンクによって起動されたインテントをキャッチするようにレシーバーを設定します。
3)関連付けられたBroadcastReceiverのonReceiveで、リンクがクリックされたという事実をカプセル化するインテントを設定します。次に、アクティビティ(すでにフォアグラウンドにある)でstartActivityを呼び出し、インテントを渡します。
4)アクティビティのonResumeコールバックで、インテントをチェックして、関数を呼び出す必要があるかどうかを確認します。
また、linkifyの使用を中止し、linkifyの正規表現を使用して、クリック可能なスパンを目的の場所に接続することもできます。これらのクリック可能なスパンは、コードを呼び出すことができます。
特定のスキームをリッスンするレシーバーを設定できます。リンクをクリックすると、そのスキームで始まるURLが呼び出されます。
詳細については、この回答を確認してください。