2011-05-01 93 views
1

我有一个小部件,我试图构建,只包含一个按钮。我想要做的是点击按钮,然后运行一些简单的代码(在我的测试中,它是一个吐司警报)。它似乎最初工作正常,但突然按钮停止响应点击。手机睡着后,我一直注意到它。这是我的AppWidgetProvider代码。AppWidget按钮onClick停止工作

的onUpdate:

for (int appWidgetId : appWidgetIds) { 
    RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.my_widget); 
    Intent intent = new Intent(context, MyNewWidgetProvider.class); 
    intent.setAction("MyCode"); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 
    remoteView.setOnClickPendingIntent(R.id.my_btn, pendingIntent); 

    AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, remoteView); 
} 

的onReceive:

super.onReceive(context, intent); 

if (intent.getAction().equals("MyCode")) {   
    Toast toast = Toast.makeText(context, "It worked", Toast.LENGTH_SHORT); 
    toast.show(); 

} 

我相当为难,所以如果有人能帮助我指出正确的方向我将不胜感激。就像我说的,它可以正常工作,直到手机睡着了一两分钟,然后它完全停止响应点击。

谢谢!

回答

1

待处理意图在每次使用后“烧毁”。您需要重新设置。或者等待小部件刷新,然后它也会发生,但这可能不是所需的方式。

+0

如果是这样的话,这个小部件只能工作一次。等待的意图似乎只有在手机已经睡了一段时间后才会被烧毁。 – faizal 2014-07-16 06:04:28

+0

嗨@Mark,你知道这个问题的解决方案吗?我继续搜索,但找不到任何解决方案。此外,我是新来的Android,并致力于跨平台的移动应用程序。 – 2017-02-13 10:11:02

+0

@MuhammadMehdiRaza没有工作,没有。如果我没有记错的话(即将近6年前),它在触发/烧毁后再次设置意图时确实奏效。 – Mark 2017-02-14 10:59:22