求教实现widget还原activity效果
同志们请教个问题啊任意一个activity,点击home键后在后台运行,点击应用的icon就可以还原这个activity.
请问下,一个widget上的按钮怎么能实现和点击应用icon同样的效果???紧急呀 紧急 widget --------------------编程问答--------------------
--------------------编程问答-------------------- 这个没有看明白啊。这不是标准的写法吗。但是需求上的按钮要有和点击应用图标相同的功能
//实例化RemoteView,其对应相应的Widget布局
RemoteViews views = new RemoteViews(context.getPackageName(), layoutName);
//给RemoteView上的Button或ImageButton设置onClick事件
views.setOnClickPendingIntent(R.id.IBfullscreen,Pfullintent);
//给RemoteView上Layout布局设置onClick事件
Intent intent = new Intent(WIDGETTOAPP);
views.setOnClickPendingIntent(layoutId, PendingIntent.getBroadcast(context, 0, intent, 0));
appWidgetManager.updateAppWidget(appWidgetId, views);
比如有2个ACTIVITY A,B ,A是标记了默认启动的ACTIVITY。B只能通过A启动
应用图标的效果是。在应用未启动时。点击应用图标,启动默认指定的A 。让后从A->B
这时B 返回键可到A。 在B状态下点击HOME 应用切换到后台。点击ICON 返回B。
现在是要求点击WIDGET上的一个按钮实现同点击应用图标ICON一个效果
困难的地方在于。widget上的按钮如果要启动一个activity 肯定要写死。
那么就很难实现他能动态的返回到B
实际上就是一个讲运行的后台的activity恢复到前台。 --------------------编程问答-------------------- 求助各位啦 幸苦啦 帮忙看看哦 --------------------编程问答--------------------
....让一个后台运行的Activty【B】 恢复到前台 你可以在maniFest.xml将该Activty【B】增加一个
launchMode属性为singleInstance 或者singleTask 那么B的实例只会被创建一次 Intent调起B的时
候只会获取当前堆栈中已存在的B 如果没有就会创建一个实例
我给你的如下代码就是给你的widget 的Button或ImageButton设置onClick事件
Pfullintent参数有三种方式 可以是service、action、broadcast 具体可以去查相关api的用法
//给RemoteView上的Button或ImageButton设置onClick事件 views.setOnClickPendingIntent(R.id.IBfullscreen,Pfullintent); --------------------编程问答-------------------- 楼主解决了没? --------------------编程问答--------------------
Intent intent = new Intent()
.setAction(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_LAUNCHER)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.setClass(getApplication(), MainActivity.class);
楼主帮忙投一票,谢谢http://vote.blog.csdn.net/blogstaritem/blogstar2013/xiaanming --------------------编程问答-------------------- 你可以参考下我的这个文章http://blog.csdn.net/xiaanming/article/details/9314193 --------------------编程问答--------------------
6楼回复的正确。
这里关键就intent里面的写法。参考下主activity在Manifest里的过滤写法
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(context, mLaunchActivity);//your first activity
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setAction(Intent.ACTION_MAIN);
大概就是这个方法实现的,注意CATEGORY_LAUNCHER & ACTION_MAIN的用法
多谢各位关注。万分感谢。
补充:移动开发 , Android