Android ネイティブよりも多くの画像形式を処理するギャラリー アプリケーションがあります。ユーザーが選択した画像を jpeg として共有できるようにする共有オプションを追加したいと思います。UI とうまく統合されているため、ShareActionProvider を使用することをお勧めします。
これが問題です。JPEG を出力するには、画像を変換するバックグラウンド プロセスが必要です。ユーザーが選択を追加するたびに単純に変換することはできません。これは、アプリが機能しなくなり、最終的に共有したくない場合があるためです。私が見た限りでは、アクションがクリックされると、ShareProvider をインターセプトする方法はありません。その時点で、必要な URI を入力する必要があるようです。
ShareActionProvider が実行される前に必要なバックグラウンド処理を処理する方法を思いついた人はいますか?
私は多くのアイデアを使い果たしました:
- onShareTargetSelected(ShareActionProvider, Intent) ですが、これではインテントの変更は許可されず、URI バンドルも変更できません。
- AsyncTask を起動してから共有インテントを起動するカスタム インテントですが、ユーザーが選択したハンドラーにはアクセスできません。
この時点で、共有セレクターを備えた古典的なアクション アイテムを実装する必要があることはほぼ確実ですが、誰かがこれに対する賢い解決策を思いついたかどうかを確認したかったのです。みんなありがとう!