- 浏览: 119255 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1286repo用法(转载) http://blogold ... -
Git使用指南
2012-03-15 14:43 9231.创建目录 $ git config --glo ... -
关于Android的多种屏幕支持
2011-12-14 14:23 1293首先是几个基本概 ... -
android ListView 修改背景
2011-12-14 09:39 1899修改listview时存在的 ... -
详解android:scaleType属性
2011-11-28 17:09 6399android:scaleType是控制图片如何res ... -
Android使用AIDL设计和调用远程接口
2011-11-24 18:14 4051在Android中, 每个应 ... -
Android开发 系统应用调用,Intent使用总结
2011-11-09 09:48 1379转载来源网上资料。 显示网页: 1. Ur ... -
ListView结合ContextMenu 获取点击项的Position
2011-11-07 17:35 1464ContextMenu称为上下文菜单,一般在控件上长按时 ... -
List of Android MIME types and Uri's
2011-11-07 16:35 1606This is a list of URIs that can ... -
隐藏输入法
2011-11-07 14:16 838在manifest里设置,android:windowSoft ... -
SlidingDrawer 使用
2011-10-28 17:51 4006关于SlidingDrawer控件 1.重要属性 ... -
Android通知及receiver
2011-10-24 15:09 38181. BroadcastReceiver Broadc ... -
Notification
2011-10-21 16:49 1585可以给Notification设置缺省的表现形式: ... -
Android 中Message,MessageQueue,Looper,Handler详解+实例
2011-10-18 13:23 966一、几个关键概念 ... -
Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化
2011-10-18 13:21 1079转自:http://www.blogjava.ne ... -
免费的Android UI库及组件推荐
2011-10-18 13:10 3007转自:http://www.iteye.com/news/22 ... -
众多Android 开源项目推荐,给力工作给力学习
2011-10-18 11:54 674转自:http://www.cnblogs.com/Terry ... -
下拉刷新
2011-10-18 11:10 814下拉刷新 参考代码 https://gith ... -
canvas.translate(x,y)理解
2011-10-17 15:59 2692translate(float x,float y)函数是将整 ... -
android.view.WindowManager$BadTokenException: Unable to add window
2011-09-28 10:19 1853android.view.WindowManager$B ...
相关推荐
本文将深入探讨如何通过反射获取`Context`的实例,并展示如何利用反射实现一个集成`Toast`的工具类。这在某些场景下非常有用,比如当我们需要在没有直接访问`Context`的情况下显示`Toast`消息。 首先,让我们了解`...
本示例"通过反射获取Context实例的Demo"将展示如何在没有直接Context引用的情况下,通过反射来获取Context。 首先,我们需要了解反射的基本概念。反射是Java提供的一种能够在运行时检查类、接口、字段和方法的能力...
本文将详细介绍如何在Android中获取其他包的Context实例,并探讨其可能的应用场景以及安全问题。 首先,Android提供了`Context.createPackageContext()`方法来创建一个特定包的Context实例。这个方法接收两个参数:...
Android全局获取Context实例详解 Android全局获取Context实例是Android开发中一个常见的问题。Context是Android中一个非常重要的概念,它提供了访问应用程序级别的资源和服务的能力。获取Context实例是非常必要的,...
Android Studio 动态加载 Fragment 和获取实例的方法 Android Studio 是一个功能强大的集成开发环境(IDE),它提供了许多实用的功能和工具来帮助开发者快速构建高质量的 Android 应用程序。在 Android 开发中,...
这个"Android获取GPS完整实例 Http上传坐标 服务程序"的项目,旨在提供一个全面的解决方案,帮助开发者掌握如何在Android应用中集成GPS追踪与远程数据传输。下面将详细解释其中涉及的关键知识点。 1. **Android权限...
2. **调用全局的Context**:通过自定义Application类并存储一个静态的Context实例,可以在任何地方调用。如上文示例所示,创建一个名为MainApplication的类,继承自Application,并在onCreate()方法中初始化全局...
/** * 广播接受者 */ class BatteryReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub //判断它是否是为电量变化的...
在Android系统中,获取Wi-Fi列表是开发移动应用时常见的需求,这主要涉及到与网络连接相关的API交互。本文将详细讲解如何在Android中获取Wi-Fi列表,并根据信号强度来显示不同的网络图标。 首先,要获取Wi-Fi列表,...
通过`Context`,我们可以获取系统资源、启动其他组件、访问硬件特性等。 二、`Context`的类型 1. **Application Context**:全局应用程序上下文,代表整个应用程序,一般通过`getApplicationContext()`获取。它是...
在Android开发中,获取设备的当前位置以及地区名称是...以上就是Android获取当前位置及地区名称的完整实现过程中的关键知识点。在实际开发中,要根据应用的特性和用户需求,合理选择定位策略,同时关注性能和用户体验。
### Android下获取开机时间 在Android开发中,有时我们需要获取设备的开机时间,这不仅可以用于统计设备的运行状态,还可以帮助我们实现某些特定的功能需求,比如应用启动时长监测、系统稳定性评估等。 #### 实现...
本文实例讲述了Android编程实现全局获取Context及使用Intent传递对象的方法。分享给大家供大家参考,具体如下: 一、全局获取 Context Android 开发中很多地方需要用到 Context,比如弹出 Toast、启动活动、发送广播...
以下是如何获取`TelephonyManager`实例的代码: ```java TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); ``` ### 三、编写手机状态监听类 为了实时监控通话状态的变化...
然后在代码中获取`WifiManager`实例并调用`getConnectionInfo()`方法: ```java WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager....
它不能直接实例化,需要通过 Context.getSystemService(Context.TELEPHONY_SERVICE) 获取实例。GsmCellLocation 是一个封装了 GSM 移动电话的基站信息的类。 获取基站信息需要相应的权限,否则将无法获取到基站信息...
在这个例子中,我们首先通过Context的getSystemService方法获取到TelephonyManager的实例,然后调用其getDeviceId方法来获取IMEI。如果设备不支持IMEI或者没有权限,该方法可能返回null或者空字符串。 对于MEID,...
- 通过`context.getSystemService(Context.WINDOW_SERVICE)`获取`WindowManager`实例。 - 创建`DisplayMetrics`对象`dm`。 - 调用`getDefaultDisplay().getMetrics(dm)`获取屏幕的尺寸信息并存储在`dm`中。 - ...