ウィジットのクリックが動作しなくなる

144 views
Skip to first unread message

BIGLOBE

unread,
May 9, 2011, 11:40:43 AM5/9/11
to android-g...@googlegroups.com
はじめまして やし と申します。

過去の投稿を見たところ、似たような質問はあったのですが、回答が
ついていなかったため、質問させていただきます。

現在ウィジットアプリケーションを作成しており、ウィジットをクリックしたら、
Activityが起動するような作りにしたいと考えております。

ネットで調べたソースを参考に、以下のように普通にウィジットのonUpdateで、
PendingIntentを設定しています。
(関連のコードのみ抜粋)

================  ここから ================

public class Widget_Main extends AppWidgetProvider {


@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO 自動生成されたメソッド・スタブ
super.onUpdate(context, appWidgetManager, appWidgetIds);

for (int i = 0; i< appWidgetIds.length; ++i){
Intent intent = new Intent(context, WidgetConfig.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT );

RemoteViews remoteViews = new
RemoteViews(context.getPackageName(),R.layout.main);
remoteViews.setOnClickPendingIntent(R.id.imageview,pendingIntent);

appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);
}

}
}

================  ここまで ================

正常時はクリックした際に
05-10 00:21:02.891: INFO/ActivityManager(223): Starting: Intent {
flg=0x10000000 cmp=XXXXX/.WidgetConfig bnds=[120,241][240,391] } from pid -1
のように出ている情報が出力されActivityが起動されます。
(cmp=XXXXX の XXXXX にはパッケージ名)


しばらくは問題なく動いているのですが、2~3日たってからクリックすると、
Activityが起動しなくなります。

EclipseからLogCatを確認すると、Intentが飛んでいることも確認できません。
(クリックしてもなんのログも出ない)

端末を再起動すれば直るかなと思って、端末を再起動したのですが、
状況は変わらず、クリックしても反応はありません。

ウィジットを一度ホームから削除したのち、再登録すれば(またしばらく)
正常動作します。

似たような情報がネットでは見つからずお手上げ状態です。

心当たりがある方は情報ください。

Junko

unread,
May 9, 2011, 8:14:15 PM5/9/11
to 日本Androidの会
こんにちは。

自分も以前うまくいかず調べた事がありますが
http://developer.android.com/guide/topics/appwidgets/index.html
の下の方に

Note: Because AppWidgetProvider is an extension of BroadcastReceiver,
your process is not guaranteed to keep running after the callback
methods return (see BroadcastReceiver for information about the
broadcast lifecycle). If your App Widget setup process can take
several seconds (perhaps while performing web requests) and you
require that your process continues, consider starting a Service in
the onUpdated() method. From within the Service, you can perform your
own updates to the App Widget without worrying about the
AppWidgetProvider closing down due to an Application Not Responding
(ANR) error. See the Wiktionary sample's AppWidgetProvider for an
example of an App Widget running a Service.

とあります。
「appwidget service」
で検索すると日本語の情報もいくつか出てきました。

ではでは。

Y M

unread,
May 10, 2011, 9:23:49 AM5/10/11
to android-g...@googlegroups.com
Junkoさん

情報ありがとうございます。
今週末にでもいただいた情報をじっくり確認してみます。


2011年5月10日9:14 Junko <junsu...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


Reply all
Reply to author
Forward
0 new messages