質問

私は、メインアプリの活動を呼ぶことになっていることをウィジェットを持っている場合、ウィジェットの体をユーザーがクリックします。私のセットアップは、1つのウィジェットのインスタンスのために動作しますが、同じウィジェットの2番目のインスタンスのためのPendingIntentは再利用やなどの追加が第一のインスタンスのために上書きされますように私が送信してることが不可欠結果情報を取得します。私は2つの別々のインテントが適切に発射されていることをログに見るであろうIntentを追加するが、活動が非常に基本的活動が来ないだろう、それを拾うために失敗し、何も起こりませんように私は、しかし、すぐIntent#setDataデータとしてウィジェットIDを渡す必要があることを考え出したので、 (エラーまたは警告エーテルなし) ここでの活動は、マニフェストで設定され方法は次のとおりです。

    <activity android:name=".SearchResultsView" 
         android:label="@string/search_results"
        <intent-filter>
            <action android:name="bostone.android.search.RESULTS" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

クリックを処理するための設定である、ここでのコード
Intent di = new Intent("bostone.android.search.RESULTS");
di.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// if line below is commented out - the Activity will start
di.setData(ContentUris.withAppendedId(Uri.EMPTY, widgetId));
di.putExtra("URL", url);
views.setOnClickPendingIntent(R.id.widgetContent, 
    PendingIntent.getActivity(this, 0, di, 0));

メインアプリケーションとパッケージ化されているウィジェット2の別個のAPKとして独自のパッケージとマニフェスト内の各

役に立ちましたか?

解決

私は、あなたが登録したインテントフィルタに一致するように発射されている意図ためにあなたの<data><intent-filter>タグが必要だと思う。

https://developer.android.com/guide/topics /manifest/data-element.htmlする

また、使用してUri.EMPTYは問題がある可能性があります。

:私はあなたのsetData()の呼び出しのようなものに見えるように、あなた自身のURIスキームを作成したいです
di.setData(Uri.withAppendedPath(Uri.parse("droidln://widget/id/"), String.valueOf(appWidgetId)));

とあなたの意図フィルタは次のようになります:

    <intent-filter>
        <action android:name="bostone.android.search.RESULTS" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="droidln"/>
    </intent-filter>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top