- 浏览: 115657 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhifeiji512:
George_ghc 写道第一段代码给cursor赋值第二段代 ...
Android中Cursor关闭的问题
Android中有Context的概念,想必大家都知道。Context可以做很多事情,打开activity、发送广播、打开本包下文件夹和数据库、获取classLoader、获取资源等等。如果我们得到了一个包的Context对象,那我们基本上可以做这个包自己能做的大部分事情。
那我们能得到吗?很高兴的告诉你,能!
Context有个createPackageContext方法,可以创建另外一个包的上下文,这个实例不同于它本身的Context实例,但是功能是一样的。
这个方法有两个参数:
1。packageName 包名,要得到Context的包名
2。flags 标志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。CONTEXT_INCLUDE_CODE的意思是包括代码,也就是说可以执行这个包里面的代码。CONTEXT_IGNORE_SECURITY的意思是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。
本包的调用Main的print方法的代码块如下:
package chroya.demo; import android.app.Activity; import android.os.Bundle; import android.util.Log; class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public void print(String msg) { Log.d("Main", "msg:"+ msg); } }
下面给个小例子,执行另外一个包里面的某个类的方法。
另外一个包的包名是chroya.demo,类名Main,方法名print,代码如下:
Context c = createPackageContext("chroya.demo", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); //载入这个类 Class clazz = c.getClassLoader().loadClass("chroya.demo.Main"); //新建一个实例 Object owner = clazz.newInstance(); //获取print方法,传入参数并执行 Object obj = clazz.getMethod("print", String.class).invoke(owner, "Hello");
ok,这样,我们就调用了chroya.demo包的Main类的print方法,执行结果,打印出了Hello。
怎么样,这只是一个调用其他包的代码的例子,我们获取到Context,还可以做很多事情,当然,题目所说的坏事,还是不要做为好。
转自:http://blog.csdn.net/wangshione/article/details/6062359
发表评论
-
repo用法
2012-03-16 14:24 1201repo用法(转载) http://blogold ... -
Git使用指南
2012-03-15 14:43 8471.创建目录 $ git config --glo ... -
关于Android的多种屏幕支持
2011-12-14 14:23 1217首先是几个基本概 ... -
android ListView 修改背景
2011-12-14 09:39 1821修改listview时存在的 ... -
详解android:scaleType属性
2011-11-28 17:09 6352android:scaleType是控制图片如何res ... -
Android使用AIDL设计和调用远程接口
2011-11-24 18:14 3980在Android中, 每个应 ... -
Android开发 系统应用调用,Intent使用总结
2011-11-09 09:48 1299转载来源网上资料。 显示网页: 1. Ur ... -
ListView结合ContextMenu 获取点击项的Position
2011-11-07 17:35 1423ContextMenu称为上下文菜单,一般在控件上长按时 ... -
List of Android MIME types and Uri's
2011-11-07 16:35 1567This is a list of URIs that can ... -
隐藏输入法
2011-11-07 14:16 796在manifest里设置,android:windowSoft ... -
SlidingDrawer 使用
2011-10-28 17:51 3960关于SlidingDrawer控件 1.重要属性 ... -
Android通知及receiver
2011-10-24 15:09 37621. BroadcastReceiver Broadc ... -
Notification
2011-10-21 16:49 1541可以给Notification设置缺省的表现形式: ... -
Android 中Message,MessageQueue,Looper,Handler详解+实例
2011-10-18 13:23 876一、几个关键概念 ... -
Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化
2011-10-18 13:21 1039转自:http://www.blogjava.ne ... -
免费的Android UI库及组件推荐
2011-10-18 13:10 2962转自:http://www.iteye.com/news/22 ... -
众多Android 开源项目推荐,给力工作给力学习
2011-10-18 11:54 619转自:http://www.cnblogs.com/Terry ... -
下拉刷新
2011-10-18 11:10 749下拉刷新 参考代码 https://gith ... -
canvas.translate(x,y)理解
2011-10-17 15:59 2641translate(float x,float y)函数是将整 ... -
android.view.WindowManager$BadTokenException: Unable to add window
2011-09-28 10:19 1755android.view.WindowManager$B ...
相关推荐
Context有个createPackageContext方法,可以创建另外一个包的上下文,这个实例不同于它本身的Context实例,但是功能是一样的。 这个方法有两个参数:1。packageName 包名,要得到Context的包名2。flags 标志位,有...
通过反射获取Context实例,可以用于工具类.让代码更加简洁清晰
利用反射实现Toast集成一个工具类的使用
主要介绍了Android全局获取Context实例详解的相关资料,需要的朋友可以参考下
主要介绍了Android编程获取全局Context的方法,实例分析了基于Application类获取全局Context的实现步骤与相关技巧,需要的朋友可以参考下
/** * 广播接受者 */ class BatteryReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub //判断它是否是为电量变化的...
本文实例讲述了Android编程实现全局获取Context及使用Intent传递对象的方法。分享给大家供大家参考,具体如下: 一、全局获取 Context Android 开发中很多地方需要用到 Context,比如弹出 Toast、启动活动、发送广播...
主要介绍了Android中的Context抽象类,包括Context的实例化与获取App的Context等方法,需要的朋友可以参考下
2、主要接口:getTelephonyInfo(Context context), 获取TelephonyInfo实例,里面封装了各种sim卡信息; updateTelephonyInfo(Context context), 更新TelephonyInfo实例信息; getDualSimChip(Context context), 获取...
通过设置全局获取栈顶对象 ,从而进行各种需要activity 对象的实例操作,进行相关操作通过设置全局获取栈顶对象 ,从而进行各种需要activity 对象的实例操作,进行相关操作通过设置全局获取栈顶对象 ,从而进行各种...
在开发Android的过程中,总是能遇见Context类或者它的实例.Context类的实例经常被用来提供“应用程序”的引用,下面举例说明Contex类实例详解
获取整个屏幕的宽度的实例 Point p = new Point(); //获取窗口管理器 WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); wm.getDefaultDisplay().getSize(p); screenWidth = ...
本文实例讲述了Android编程实现通过反射获取资源Id的方法。分享给大家供大家参考,具体如下: 在将自己写的工具打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射机制动态的...
本文实例讲述了Android编程实现获取系统内存、CPU使用率及状态栏高度的方法。分享给大家供大家参考,具体如下: DeviceInfoManage类用于获取系统的内存,CPU的信息,以及状态栏的高度 import java.io.BufferedReader...
在应用的Application的onCreate()中添加如下代码(主要是为了省却后面要传入Context参数的麻烦) AnyPref.init(this); 1. 读写实例对象 假设有一个Sample类(所有注解都是非必须的) @PrefModel("prefName")//...
本文实例讲述了android获取当前运行Activity名字的方法,可以避免即时聊天再出现通知的情况。分享给大家供大家参考。具体方法如下: 最近在做IM时需要知道当前Activity是哪一个Activity.自己整理一下两种方法 第一种...
本文实例讲述了Android实现获取签名及公钥的方法。分享给大家供大家参考。具体如下: 1. java代码如下: private byte[] getSign(Context context) { PackageManager pm = context.getPackageManager(); List...