Android:点击小工具事件

时间:2010-12-25 16:19:46

标签: java android android-widget

我完全是Android编程的新手,我试图点击一个工作的Android小部件:

public class MyWidget extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) 
{
// Loop through all widgets
for(int i=0;i < appWidgetIds.length;i++) {
    int appWigedid = appWidgetIds[i];
    // Create an intent to launce something
    Intent intent = new Intent(context,TestActivity.class);
    PendingIntent pendingintent = PendingIntent.getActivity(context, 0, intent, 0);


    // Get the layout for the app widget and attach on click listener
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.initial_layout);
    views.setOnClickPendingIntent(R.id.UselessMessage, pendingintent);
    views.setTextViewText(R.id.UselessMessage,"This text is useless");
    AppWidgetManager manager = AppWidgetManager.getInstance(context);
    manager.updateAppWidget(appWigedid,views);
}
}

我的TestActivity类只是一个存根,因为它仍然试图找出它的调用方式。

public class TestActivity extends Activity {
@Override
protected void onStart() {
    System.out.println("On Start called!");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    System.out.println("on create called!");
};

}

Text的设置有效。但是TestAcitivity的onStart方法永远不会执行(其他sysout消息可以工作)。当我点击小部件安卓日志时:

12-25 17:17:43.054  1279  1392 I ActivityManager: Starting activity: Intent { flg=0x10000000 cmp=org.rfc1149.android.simple/.TestActivity bnds=[120,272][360,371] }

表示活动已创建,但onCreate不起作用。

3 个答案:

答案 0 :(得分:1)

确保您的清单中定义了TestActivity

答案 1 :(得分:0)

你的onCreate()方法确实有效,并且会登录到可以在DDMS透视图上查看的LogCat(如果你使用Eclipse)。要使你的onStart()方法起作用,你必须在你的覆盖中调用super.onStart() onStart()方法。

答案 2 :(得分:0)

使用Log.d("myTAG", "debug text")代替System.out.println("debug text")