안드로이드 개발 질문/답변
(글 수 45,052)
앱 위젯에서 Intent 를 받아서 Receiver에서 액션을 처리 하는 프로그램을 설계 중인데요.
인터넷에서 예제를 다 받아서 실행해 보아도 PendingIntent.getBroadcast 를 통해서 Intent 를 발생해도 아무련 변화가 없네요...
Log 를 이용해서 Receiver에 두어도 아무런 반응도 튀어나오지 않네요..
근데 Activity를 불러오는건 PendingIntent.getActivity 는 잘 실행되어서 Intent 가 발생되는게 보이는데..
이상하게 PendingIntent.getBroadcast 만 변화가 없네요..
제 컴터의 애뮬레이터의 문제일 수 도 있는건가요?
아래 소스는 인터넷에서 받아서 실행시켜본 소스인데요. 실행시키면 나오는 버튼 두개에서 Btn2 를 눌렀을 때 화면의 변화는 없지만
Activity가 불려지는것이 Log에 남는게 확실히 보이는데
Btn1을 눌렀을 때 액션이 나타나지 않네요..;;; 무슨 문제일까요?;;; ㅠㅠ
인터넷에서 예제를 다 받아서 실행해 보아도 PendingIntent.getBroadcast 를 통해서 Intent 를 발생해도 아무련 변화가 없네요...
Log 를 이용해서 Receiver에 두어도 아무런 반응도 튀어나오지 않네요..
근데 Activity를 불러오는건 PendingIntent.getActivity 는 잘 실행되어서 Intent 가 발생되는게 보이는데..
이상하게 PendingIntent.getBroadcast 만 변화가 없네요..
제 컴터의 애뮬레이터의 문제일 수 도 있는건가요?
아래 소스는 인터넷에서 받아서 실행시켜본 소스인데요. 실행시키면 나오는 버튼 두개에서 Btn2 를 눌렀을 때 화면의 변화는 없지만
Activity가 불려지는것이 Log에 남는게 확실히 보이는데
Btn1을 눌렀을 때 액션이 나타나지 않네요..;;; 무슨 문제일까요?;;; ㅠㅠ
public class TestWidgetProvider extends AppWidgetProvider {
private static final String ACTION_ACTION1 = "com.rosa.action.test1";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
PendingIntent pending1 = PendingIntent.getBroadcast(context, 0,
new Intent(ACTION_ACTION1), 0);
PendingIntent pending2 = PendingIntent.getActivity(context, 0,
new Intent(context, TestActivity.class), 0);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.testwidget_layout);
views.setOnClickPendingIntent(R.id.TestBtn1, pending1);
views.setOnClickPendingIntent(R.id.TestBtn2, pending2);
Log.d("Test","seting");
ComponentName thisWidget = new ComponentName(context,
TestWidgetProvider.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, views);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.e("ROSA", action);
if (action.equals(ACTION_ACTION1)) {
Log.d("Test","testok");
Toast.makeText(context, "onReceive :: ACTION_ACTION1 ", 3000)
.show();
} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
Log.d("Test","testerror");
} else {
// 여긴 안올꺼임
}
super.onReceive(context, intent);
}
}



