博主即将硕士毕业,最近一直在忙乎毕业设计的开发。
毕业设计要做的是一个移动广告平台。要做成库,方便其他开发者添加到自己开发的应用当中。与其他广告平台不同,这次要开发的平台搭载的是公益广告,没有直接的广告收益。而且针对公益广告,添加了自动管理广告来源和内容推送功能。说白了就是个加强版的AdMob。开发从Android版本开始,所以最近一直就在捣鼓 GCM 的使用。开发途中发现 Google的 C2DM 改版成 GCM 以后,在国内找不到太多的资料。不知道是不是在这些领域国人跟进的速度是不是稍微慢了一些。。
言归正传,这次我要说明的是在非Activity的环境中怎么架设Intent,来启动Activity。
我们都知道 在Android编程中,Activity和Activity之间的切换是要用到Intent来牵线搭桥的。然而我却遇到了这样的一个问题:我要用Notification 来在通知栏里显示推送的消息。点击消息弹出某个搭载了广告的Activity来显示广告。弹出Activity 就需要用到Intent,但创建Intent的时候最常用的两个变量,Context 和 Activity 的Class,我们都没有,怎么办?
像这样:
new Intent(Context context, Class<?> cls);
我们一般在Activity中使用的时候:
new Intent(this, XXXActivity.class);
我们收到推送的时候,应用大多是关闭着的,那么这个Intent的出发点,我们就没有。尤其当我们设置Notification的时候,如果只是在一般的类里头,而不是在Activity中的话,我们就需要导入一个任意Activity的Context。
然后在我将做好的代码打包成库的时候,发现一个问题,我要做的是一个广告条,只有一个View,不包含任何Activity,那么在创建Intent的时候,第二个变量也不是固定的。也就是说,在点击Notification的时候跳转到哪个Activity也得由开发者自己定义,所以也需要留出一个接口给开发者。
下面就是我的做法: 在一个全局类中生命两个全局变量,Context context, 和 Class<?> cls.
在主View(因为我的库就是提供给开发者一个广告View)中,写一个方法,接受这两个变量。
public void loadAd(Context context, Class<?> cls){
Util.setContext(context);
Uril.setActivity(cls);
}
class Util{
private static Context context;
private static Class<?> cls;
public static void setContext(Context arg0){
context = arg0;
}
public static Context getContext(){
return context;
}
public static void setActivity (Class<?> arg0){
cls = arg0;
}
public static Class<?> getActivity(){
return cls;
}
}
期中的loadAd()方法是搭载广告View后必须运行的方法。
Util 类就是用来保存Context 和 Activity全局变量的类。
这样一来两个变量都弄到手,以后直接调用就可以了。
在这里再说明一下,以前看过有的帖子里说明说用一下的方法也能运行Intent,但是我试过了,在打包成库的情况下,这个方法不好使~!
//new Intent(context,context.getClass());
好,就这样!
分享到:
相关推荐
卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包卸载软件Geek安装包...
GEEK卸载工具是一款高效且实用的软件管理程序,尤其在处理绿色免安装版本的应用程序时表现出色。它专为那些希望轻松、彻底卸载计算机上不再需要的软件的用户设计。这款工具以其强大的扫描功能、深度清理以及无需正式...
5. **实时监控**:在安装新软件时,Geek Uninstaller可以实时跟踪其安装过程,从而在卸载时能更准确地清除相关文件和注册表信息。 6. **快速查找**:用户可以通过软件名称或关键词快速找到需要卸载的程序,节省时间...
《O2OMobile_Android:Geek Zoo Studio的开源原生O2O系统解析》 在当今移动互联网时代,O2O(Online To Offline)模式已经深入人们的日常生活,为商家和消费者提供了便捷的线上线下交互服务。O2OMobile_Android是由...
Geek是一款专业的Windows软件卸载工具,只有6M大小,非常轻巧方便。它可以帮助用户管理电脑上的软件、驱动、系统补丁等,同时还能够对电脑进行安全检测和优化。 Geek软件的主要功能包括: 1. 软件管理:可以扫描...
6. **注册表清理**:在卸载软件时,清理注册表是非常重要的一步,因为许多应用程序会在注册表中留下键值,即使卸载了程序,这些键值仍然存在,可能导致系统问题。 7. **用户界面**:作为一款用户评价高的软件,Geek...
3. 解决问题的能力:Geek们善于分析问题,找到创新的解决方案。他们在面对技术难题时,往往能跳出常规思维,利用技术手段实现突破。 4. 开源精神:Geek社区鼓励分享和协作,许多Geek参与到开源项目中,通过GitHub等...
而"Geek卸载软件"采用的是绿色软件模式,它将所有必需的程序文件打包在一个可执行文件中,省去了繁琐的安装步骤。用户只需将包含"geek.exe"的压缩包解压到任意位置,然后双击执行,即可开始操作,这样的设计非常适合...
3. **编程工具**:对于开发者来说,"Geek"软件可能包括代码编辑器、调试器、版本控制工具等,帮助他们高效地进行软件开发。 4. **数据恢复**:由于Geek往往需要处理各种复杂情况,软件可能具备数据恢复功能,能从...
2. **简单易懂**:GEEK OS的目标是易于理解和学习,因此在设计时尽量保持代码简洁,便于初学者掌握。 3. **实时性**:尽管GEEK OS是一款教学性质的操作系统,但在设计时也考虑了实时性,以满足一些对响应速度有要求...
其三,实时跟踪安装,当用户安装新的软件时,Geek Uninstaller会自动添加到列表中,无需手动添加。 接下来,我们来谈谈如何使用Geek Uninstaller。启动软件后,用户可以看到所有已安装程序的列表。选择要卸载的程序...
同时,geek.exe还提供日志查看,用户可以追踪每一个卸载操作的详细过程,以便在出现问题时进行排查。 总而言之,geek.exe凭借其强大的卸载和注册表清理能力,成为了Windows用户必备的工具之一。无论是对个人用户...
本文将详细介绍一款名为"Geek Uninstaller"的绿色软件,它以其高效、便捷的特性赢得了众多用户的青睐。 首先,让我们来理解一下“绿色软件安装包”的概念。绿色软件通常指的是不需要安装,解压后即可使用的软件。...
"Geek卸载工具"是一款高效且功能强大的应用程序卸载工具,专为用户解决系统中难以卸载或残留垃圾文件的问题。它具有简洁的界面和强大的扫描能力,能够深度清理程序的残余文件,帮助优化电脑性能。 1. **卸载功能**...
"Geek.zip卸载器"是一款专为用户设计的强力卸载工具,旨在帮助用户彻底、干净地从计算机中移除不需要的软件。在日常使用电脑的过程中,有时我们安装的软件可能留下了残留的注册表项、文件夹或者启动项,这些残留可能...
本文将围绕7z压缩格式以及"geek.7z"中的"geek.exe"文件进行深入探讨。 首先,我们来了解一下7z格式。7z格式采用了多种先进的压缩算法,如LZMA(Lempel-Ziv-Markov chain algorithm)和PPMd(Predict by Partial ...
geek
"卸载软件geek"通常指的是Geek Uninstaller,这是一款高效、轻量级的程序卸载工具,专为帮助用户彻底移除电脑上的应用程序而设计。它提供了比操作系统自带的卸载功能更为全面和深入的清理选项。下面将详细介绍这款...
标题中的“完全卸载工具geek.7z”指的是一个名为“Geek”的卸载工具,它被压缩在了一个.7z格式的压缩包里。7z是一种高效、开源的文件压缩格式,由7-Zip软件创建,可以提供比ZIP和RAR更高的压缩率。这个工具的主要...
Geek是一款有着快速扫描方式的卸载工具,能够对电脑软件进行反安装、修改、强制移除、移除项目、清理注册表等实用操作,可以保证卸载无残留,系统运行速度也不会有丝毫影响。 电脑自带的卸载功能,卸载软件...