小编fup*_*uck的帖子

这被认为是反思和程度吗?

我有一个Android应用程序(java)使用Android 1.6 SDK使用android.provider.Contacts类中的以下代码编译时工作正常:

Uri baseUri = Contacts.Phones.CONTENT_FILTER_URL;
Run Code Online (Sandbox Code Playgroud)

当2.0 SDK问世时,android.provider.Contacts类被折旧并替换为android.provider.ContactsContract.为了让一个程序同时适用于1.6和2.0,我在1.6下编译并进行了以下更改:

Uri baseUri = Contacts.Phones.CONTENT_FILTER_URL;
…
try {
    Class<?> c = Class.forName("android.provider.ContactsContract$PhoneLookup");
    baseUri = (Uri) c.getField("CONTENT_FILTER_URI").get(baseUri);
} 
    catch (Exception e) {           
}
Run Code Online (Sandbox Code Playgroud)

由于我在1.6下编译,我无法导入android.provider.ContactsContract,因为它是一个只知道2.0的类.这被认为是反思和程度吗?

补充评论:在阅读了"Java编程语言"的"反思"章节后(我本来应该先做),我现在大部分都了解你可以用反射做些什么,但反思的简洁定义并不容易.你的答案有助于澄清是什么引发了我的问题 - 一旦反映了一个类,并且使用反射创建了一个类的实例,你就可以像实现类一样与实例进行交互.

这是我对简明定义的微薄尝试,这种定义远非完美,我相信我需要修改,因为我了解更多:

反射是使用java.lang.reflect中包含的类对象或需要使用完全限定的字符串名称初始访问类的Class或Package类对类对象进行间接,动态查询,操作或调用.

java reflection android

6
推荐指数
1
解决办法
1534
查看次数

Android市场传统版权保护

我在Android Market上有一个应用程序,该应用程序是在一年多前发布的,使用市场传统的复制保护(仍然有效,但在新的许可模式下折旧).我已经阅读了许多帐户,如果我关闭旧版复制保护,当前客户将无法再访问该应用程序.由于旧版复制保护已正式折旧,我的应用程序的销售额大幅下降,是否可能由于旧版复制保护已开启,新设备不再"看到"我的应用程序?更重要的是,如何在不疏远现有客户的情况下关闭旧版复制保护?

android google-play

5
推荐指数
1
解决办法
513
查看次数

android:targetSdkVersion = 8会导致问题吗?

我的Android应用程序使用minSdkVersion = 3和targetSdkVersion = 8.我使用了8,因为这是测试应用程序的API的最高级别; 但是,它是针对3级编写的,并且不使用超出该级别的任何功能(除了使用反射的4级之外).使用targetSdkVersion = 8会导致:

  1. Android Market过滤某些设备的应用程序?我的目的是让应用程序可用于所有设备> = 3级,无过滤.

  2. 根据谷歌的说法,应用程序中的问题因为targetSdkVersion = 8,将禁用目标版本不需要的兼容性设置(否则可能会打开以保持向前兼容性)或启用不可用的新功能旧申请".

android

2
推荐指数
1
解决办法
1756
查看次数

标签 统计

android ×3

google-play ×1

java ×1

reflection ×1