[英]How to pass a value from home screen widget to the application?
我正在与一个我要为其创建小部件的android项目一起工作。 使用此小部件,我必须控制控件的某些操作(即,通过按小部件中的“停止”按钮,应用程序应停止执行某些操作)。 为此,我必须在单击按钮时从小部件传递一些值给应用程序。 到目前为止,我可以执行以下操作:
感谢您的任何帮助,谢谢。
我不确定这个问题,因为我还没有尝试过小部件。
单击按钮时,发送董事会广播消息。 并且您的应用程序需要运行服务才能接收消息。 您可以在邮件中输入您的值吗?
希望此链接可以为您提供一些想法: http : //rxwen.blogspot.com/2012/10/communication-between-android-widget.html
还有一个类似的问题: Android-小部件及其应用之间的通信
祝好运!
我已成功完成项目的这一部分。有两种情况
在两种情况下我们都可以使用两种方法
sharedpreferences
Intent(putExtra())
如果要将值直接传递给活动(传递值时将启动应用程序),则可以使用上述第二种方法,并按以下方式调用活动(要启动的活动):
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
Intent intent = new Intent(context,MainActivity.class);
PendingIntent pendingIntent = PendingIntent(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.PunchIn, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
此代码可通过单击小部件按钮来启动MainActivity。 在Inten中,您可以使用putExtra()传递值。最好不要在此处使用sharedpreference。
为了在不启动应用程序的情况下传递价值,您可以从小部件按钮调用服务,然后可以在service.class
文件中添加要添加的任何代码。 您可以按以下方式致电服务:
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
Intent intent = new Intent(context,MyService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.PunchIn, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
通过此服务类,您可以使用SharedPrefernce
或putExtra()
将值传递给应用程序。
如果您想制作一个按钮小部件,其功能与应用程序的按钮单击相同,则可以使用第二种方法。 在这里,您可以按如上所述在单击按钮时调用服务,然后在服务类中为单击按钮编写代码。
我是android新手,在我的项目中使用widget进行了很多研究,这花费了很多时间。 因此考虑发布此内容,这会对像我这样的人有所帮助。 如果发现任何错误/错误,请纠正我。很高兴纠正我的错误。 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.