当前位置:编程学习 > wap >>

求教实现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);
--------------------编程问答--------------------
引用 1 楼 ConnectionUtils 的回复:
Java code?1234567891011        //实例化RemoteView,其对应相应的Widget布局        RemoteViews views = new RemoteViews(context.getPackageName(), layoutName);                 //给RemoteView上的Button或Image……
这个没有看明白啊。这不是标准的写法吗。但是需求上的按钮要有和点击应用图标相同的功能
比如有2个ACTIVITY  A,B ,A是标记了默认启动的ACTIVITY。B只能通过A启动
应用图标的效果是。在应用未启动时。点击应用图标,启动默认指定的A 。让后从A->B
这时B 返回键可到A。 在B状态下点击HOME 应用切换到后台。点击ICON 返回B。

现在是要求点击WIDGET上的一个按钮实现同点击应用图标ICON一个效果

困难的地方在于。widget上的按钮如果要启动一个activity 肯定要写死。
那么就很难实现他能动态的返回到B 
实际上就是一个讲运行的后台的activity恢复到前台。 --------------------编程问答-------------------- 求助各位啦 幸苦啦 帮忙看看哦 --------------------编程问答--------------------
引用 2 楼 ms03001620 的回复:
引用 1 楼 ConnectionUtils 的回复:
Java code?1234567891011        //实例化RemoteView,其对应相应的Widget布局        RemoteViews views = new RemoteViews(context.getPackageName(), layoutName);                 //给RemoteVi……


....让一个后台运行的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 --------------------编程问答--------------------
引用 5 楼 androidmm 的回复:
楼主解决了没?


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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,