如何将值从主屏幕小部件传递到应用程序?
How to pass a value from home screen widget to the application?
我正在处理一个 android 项目,我想为其创建一个小部件。使用此小部件,我必须控制控件的某些操作(即通过按下小部件中的停止按钮,应用程序应停止执行某些操作)。为此,我必须在单击按钮时将一些值从小部件传递给应用程序。到目前为止,我能够执行以下操作:
- 点击按钮打开 activity
- 点击按钮打开 URL
- 单击按钮在主屏幕上祝酒
感谢任何帮助,谢谢。
我不确定这个问题,因为我还没有尝试过小部件。
单击按钮时,发送一条广播消息。并且您的应用需要 运行 服务来接收消息。您可以在消息中加入您的价值观吗?
希望这个 link 可以给你一些想法:
http://rxwen.blogspot.com/2012/10/communication-between-android-widget.html
还有一个类似的问题:Android - Communications between a widget and its app
祝你好运!
我已经顺利完成了这部分我的project.There是两个场景
- 当我们传递值时,应用程序将启动。也就是说,我们将值直接传递给 activity
- 在不启动应用程序的情况下,我们可以通过 values.Here 我们正在使用的服务
在这两种情况下我们可以使用两种方法
- 使用
sharedpreferences
- 使用
Intent(putExtra())
如果你想直接将值传递给activity(应用程序将在传递值时启动)你可以使用上面提到的第二种方法并调用activity(其中activity你想启动)如下:
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() 传递 values.better 以在此处不使用 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);
通过此服务 class,您可以使用 SharedPrefernce
或 putExtra()
将值传递给应用程序。
如果你想制作一个按钮小部件,它的工作方式与应用程序的按钮点击相同,你可以使用第二种方法。这里可以调用上面提到的按钮点击服务,然后在服务中编写按钮点击的代码class.
我是 android 的新手,我在我的项目中使用小部件进行了很多研究并且花了很多时间。所以想过发布这个对像我这样的人有帮助的人。如果您发现任何 error/mistake 请更正 me.happy 以纠正我的错误。
谢谢
我正在处理一个 android 项目,我想为其创建一个小部件。使用此小部件,我必须控制控件的某些操作(即通过按下小部件中的停止按钮,应用程序应停止执行某些操作)。为此,我必须在单击按钮时将一些值从小部件传递给应用程序。到目前为止,我能够执行以下操作:
- 点击按钮打开 activity
- 点击按钮打开 URL
- 单击按钮在主屏幕上祝酒
感谢任何帮助,谢谢。
我不确定这个问题,因为我还没有尝试过小部件。
单击按钮时,发送一条广播消息。并且您的应用需要 运行 服务来接收消息。您可以在消息中加入您的价值观吗?
希望这个 link 可以给你一些想法: http://rxwen.blogspot.com/2012/10/communication-between-android-widget.html
还有一个类似的问题:Android - Communications between a widget and its app
祝你好运!
我已经顺利完成了这部分我的project.There是两个场景
- 当我们传递值时,应用程序将启动。也就是说,我们将值直接传递给 activity
- 在不启动应用程序的情况下,我们可以通过 values.Here 我们正在使用的服务
在这两种情况下我们可以使用两种方法
- 使用
sharedpreferences
- 使用
Intent(putExtra())
如果你想直接将值传递给activity(应用程序将在传递值时启动)你可以使用上面提到的第二种方法并调用activity(其中activity你想启动)如下:
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() 传递 values.better 以在此处不使用 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);
通过此服务 class,您可以使用 SharedPrefernce
或 putExtra()
将值传递给应用程序。
如果你想制作一个按钮小部件,它的工作方式与应用程序的按钮点击相同,你可以使用第二种方法。这里可以调用上面提到的按钮点击服务,然后在服务中编写按钮点击的代码class.
我是 android 的新手,我在我的项目中使用小部件进行了很多研究并且花了很多时间。所以想过发布这个对像我这样的人有帮助的人。如果您发现任何 error/mistake 请更正 me.happy 以纠正我的错误。 谢谢