1

私はAndroid開発に不慣れです。アラームマネージャーを使用して、30分ごとに更新されるウィジェットをコーディングすることができました。この部分は正しく機能しています。

ウィジェットをクリックするたびに手動でウィジェットを更新できるようにしたい(つまり、繰り返しアラームまたはクリックのいずれかを介して、ブロードキャストを介して同じOnReceive()をトリガーする)。

最後に2行を追加するだけの簡単な方法であると期待していましたが(以下を参照)、ウィジェットをクリックしてもonClickが機能しません。私がやろうとしていることを達成するための最良の方法は何ですか?

@Override
public void onEnabled(Context context) {
    super.onEnabled(context);
    AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
    PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
    //Update after 30 minutes
    am.setInexactRepeating(AlarmManager.RTC, System.currentTimeMillis()+ 300, 18000000 , pi);

        //Update manually by Clicking widget (this part not working)    
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
            R.layout.my_widget_layout);         
    remoteViews.setOnClickPendingIntent(R.layout.my_widget_layout, pi);
4

1 に答える 1

1

コードにR.layout.my_widget_layoutとを混ぜていますか?R.id.my_widget_layout

Androidは、ビュー(レイアウト)でR.id.xyz生成されたすべてのウィジェットアイテムにの参照IDを使用することに注意してください。R.layout.abc

私はエラーがオンラインで提起されると予想しました:

remoteViews.setOnClickPendingIntent(R.id.my_widget_layout, pi);
于 2012-08-31T02:16:30.910 に答える