{"id":13472165,"url":"https://github.com/white-cat/ThinkAndroid","last_synced_at":"2025-03-26T15:31:33.001Z","repository":{"id":8442941,"uuid":"10034660","full_name":"white-cat/ThinkAndroid","owner":"white-cat","description":"ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架，其开发宗旨是简单、快速的进行 Android应用程序的开发，包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块, 具有快速构建文件缓存功能，无需考虑缓存文件的格式，都可以非常轻松的实现缓存，它还基于文件缓存模块实现了图片缓存功能， 在android中加载的图片的时候，对oom的问题，和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类， 如日志管理，配置文件管理，android下载器模块，网络切换检测等等工具。","archived":false,"fork":false,"pushed_at":"2017-07-24T09:27:30.000Z","size":1974,"stargazers_count":1977,"open_issues_count":2,"forks_count":1028,"subscribers_count":234,"default_branch":"master","last_synced_at":"2025-03-25T00:37:26.115Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.thinkandroid.cn","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/white-cat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-13T15:26:30.000Z","updated_at":"2025-03-19T08:44:00.000Z","dependencies_parsed_at":"2022-08-17T07:30:23.306Z","dependency_job_id":null,"html_url":"https://github.com/white-cat/ThinkAndroid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/white-cat%2FThinkAndroid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/white-cat%2FThinkAndroid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/white-cat%2FThinkAndroid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/white-cat%2FThinkAndroid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/white-cat","download_url":"https://codeload.github.com/white-cat/ThinkAndroid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245681340,"owners_count":20655172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T16:00:52.532Z","updated_at":"2025-03-26T15:31:32.959Z","avatar_url":"https://github.com/white-cat.png","language":"Java","funding_links":[],"categories":["Java","Libs"],"sub_categories":["\u003cA NAME=\"Framework\"\u003e\u003c/A\u003eFramework"],"readme":"该项目已经暂停维护：需要 Java web快速开发框架可以关注我的们的项目\n[JEEWEB快速开发平台](https://github.com/white-cat/jeeweb-mybatis)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n#ThinkAndroid 交流平台\n* QQ群：169415162(交流群1) \n* 网址：[http://www.thinkandroid.cn](http://www.thinkandroid.cn)\n\n----\n\n#  ThinkAndroid简介 \nThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架，其开发宗旨是简单、快速的进行\nAndroid应用程序的开发，包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块,\n具有快速构建文件缓存功能，无需考虑缓存文件的格式，都可以非常轻松的实现缓存，它还基于文件缓存模块实现了图片缓存功能，\n在android中加载的图片的时候，对oom的问题，和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类，\n如日志管理，配置文件管理，android下载器模块，网络切换检测等等工具。\n\n\n##目前ThinkAndroid主要有以下模块：\n\n* MVC模块：实现视图与模型的分离。\n\n* ioc模块：android中的ioc模块，完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。\n\n* 数据库模块：android中的orm框架，使用了线程池对sqlite进行操作。\n* \n* http模块：通过httpclient进行封装http数据请求，支持异步及同步方式加载。\n\n* 缓存模块：通过简单的配置及设计可以很好的实现缓存，对缓存可以随意的配置\n\n* 图片缓存模块：imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。\n\n* 配置器模块：可以对简易的实现配对配置的操作，目前配置文件可以支持Preference、Properties对配置进行存取。\n\n* 日志打印模块：可以较快的轻易的是实现日志打印，支持日志打印的扩展，目前支持对sdcard写入本地打印、以及控制台打印\n\n* 下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。\n\n* 网络状态检测模块：当网络状态改变时，对其进行检测。\n\n\n---\n## 使用ThinkAndroid快速开发框架需要有以下权限：\n\n```xml\n\u003c!-- 访问互联网权限 根据需要添加--\u003e\n\u003cuses-permission android:name=\"android.permission.INTERNET\" /\u003e\n\u003c!-- SDCARD读写权限 根据需要添加 --\u003e\n\u003cuses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" /\u003e\n\u003c!-- 网络状态检测权限  根据需要添加--\u003e\n\u003cuses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" /\u003e\n\u003cuses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\" /\u003e\n\u003cuses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\" /\u003e\n\u003cuses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" /\u003e\n     配置：\n     \u003creceiver android:name=\"com.ta.util.netstate.TANetworkStateReceiver\" \u003e\n            \u003cintent-filter\u003e\n                \u003caction android:name=\"android.net.conn.CONNECTIVITY_CHANGE\" /\u003e\n            \u003c/intent-filter\u003e\n        \u003c/receiver\u003e\n \u003capplication\n        android:name=\"com.ta.TAApplication\" \u003e\n      application必须配置以上格式\n```\nActivity必须继承TAActivity\n----\n##ThinkAndroid使用方法：\n关于ThinkAndroid的更多介绍，请点击[这里](http://www.thinkandroid.cn/forum.php?mod=forumdisplay\u0026fid=36)\n##MVC模块\n* MVC模块：实现视图与模型的分离。\n\n```java\n  getTAApplication().registerCommand(R.string.comand,\n        TAIdentityCommand.class);\n\t\tgetTAApplication().registerCommand(R.string.comand,\n\t\t\t\tTAIdentityCommand.class);\n\t\tTALogger.addLogger(new TAPrintToFileLogger());\n\t\tTARequest request = new TARequest();\n\t\tdoCommand(R.string.comand, request, new TAIResponseListener()\n\t\t{\n\n\t\t\t@Override\n\t\t\tpublic void onStart(TAResponse response)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void onSuccess(TAResponse response)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void onRuning(TAResponse response)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void onFailure(TAResponse response)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\n\t\t\t}\n\n\t\t}, false, true, true);\n    \n    \n    \n  \npackage com.ta.mvc.command;\n\nimport com.ta.mvc.common.TAIResponseListener;\nimport com.ta.mvc.common.TARequest;\nimport com.ta.mvc.common.TAResponse;\n\npublic class TAIdentityCommand extends TACommand\n{\n  @Override\n\tprotected void executeCommand()\n\t{\n\t\t// TODO Auto-generated method stub\n\t\tTARequest request = getRequest();\n\t\tTAResponse response = new TAResponse();\n\t\tresponse.setTag(request.getTag());\n\t\tresponse.setData(request.getData());\n\t\tresponse.setActivityKey((String) request.getActivityKey());\n\t\tresponse.setActivityKeyResID(request.getActivityKeyResID());\n\t\tsetResponse(response);\n\t\tnotifyListener(true);\n\t}\n\n\tprotected void notifyListener(boolean success)\n\t{\n\t\tTAIResponseListener responseListener = getResponseListener();\n\t\tif (responseListener != null)\n\t\t{\n\t\t\tonComandUpdate(command_success);\n\t\t}\n\t}\n}\n\n```\n\n----\n\n##ioc模块使用方法：\n* 完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。\n\n```java\npublic class ThinkAndroidDemoActivity extends TAActivity {\n\n     \n\t@TAInject \n\tEntity entity; //目前只能对无参构造函数进行初始化\n\t@@TAInject(id=R.string.app_name)\n\tString appNameString;\n\t@TAInjectResource(id=R.attr.test)\n\tint[] test; \n\t@TAInjectView(id=R.id.add);\n\tButton addButton;\n}\n\n```\n\n##数据库模块\n* android中的orm框架，使用了线程池对sqlite进行操作。\n\n```java\npublic class ThinkAndroidDemoActivity extends TAActivity {\n\n   TASQLiteDatabasePool sqlitePool = getTAApplication()\n\t\t\t\t.getSQLiteDatabasePool();\n\t\tTASQLiteDatabase sqliteDatabase=sqlitePool.getSQLiteDatabase();\n\t\t//使用中\n\t\tsqliteDatabase.insert(entity);\n\t\tsqlitePool.returnSQLiteDatabase(sqliteDatabase); \n \n}\n```\n\n##Http模块使用方法：\n###异步get方法\n```java\n  AsyncHttpClient client = new AsyncHttpClient();\n\t\tclient.get(\"http://www.thinkandroid.cn/\", new AsyncHttpResponseHandler()\n\t\t{\n\t\t\t@Override\n\t\t\tpublic void onSuccess(String content)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onSuccess(content);\n\t\t\t\tTALogger.d(LoginActivity.this, content);\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onStart()\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onStart();\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onFailure(Throwable error)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onFailure(error);\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onFinish()\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onFinish();\n\t\t\t}\n\n\t\t});\n```\n##Http模块使用方法：\n###同步get方法\n\n```java\n  TASyncHttpClient client = new TASyncHttpClient();\n  \tclient.get(\"http://www.thinkandroid.cn/\", new AsyncHttpResponseHandler()\n\t\t{\n\t\t\t@Override\n\t\t\tpublic void onSuccess(String content)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onSuccess(content);\n\t\t\t\tTALogger.d(LoginActivity.this, content);\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onStart()\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onStart();\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onFailure(Throwable error)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onFailure(error);\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onFinish()\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onFinish();\n\t\t\t}\n\n\t\t});\n```\n### 使用http模块上传文件 或者 提交数据 到服务器（post方法）\n\n```java\nRequestParams params = new RequestParams();\n  \t  params.put(\"username\", \"white_cat\");\n\t\t  params.put(\"password\", \"123456\");\n\t\t  params.put(\"email\", \"2640017581@qq.com\");\n\t\t  params.put(\"profile_picture\", new File(\"/mnt/sdcard/testpic.jpg\")); // 上传文件\n\t\t  params.put(\"profile_picture2\", inputStream); // 上传数据流\n\t\t  params.put(\"profile_picture3\", new ByteArrayInputStream(bytes)); // 提交字节流\n\t\tclient.post(\"http://www.thinkandroid.cn/\", new AsyncHttpResponseHandler()\n\t\t{\n\t\t\t@Override\n\t\t\tpublic void onSuccess(String content)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onSuccess(content);\n\t\t\t\tTALogger.d(LoginActivity.this, content);\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onStart()\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onStart();\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onFailure(Throwable error)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onFailure(error);\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void onFinish()\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onFinish();\n\t\t\t}\n\n\t\t});\n\t}\n```\n\n\n----\n\n###使用http下载文件：\n* 支持断点续传，随时停止下载任务 或者 开始任务\n\n```java\n    AsyncHttpClient syncHttpClient = new AsyncHttpClient();\n  \t   FileHttpResponseHandler fHandler = new FileHttpResponseHandler(\n\t\t\t\t\tTAExternalOverFroyoUtils.getDiskCacheDir(TestActivity.this,\n\t\t\t\t\t \"sdfsdfsdf\").getAbsolutePath())\n\t\t   {\n\t\t\t         \n\t\t\t\t\t\n\t\t\t\t\t @Override \n\t\t\t\t\t public void onProgress(String speed, String progress) {\n\t\t\t\t\t\t //TODO Auto-generated method stub \n\t\t\t\t\t\t super.onProgress(speed, progress);\n\t\t\t\t\t TALogger.v(TestActivity.this, progress + \"--------\" + speed); }\n\t\t\t\t\t \n\t\t\t\t\t @Override \n\t\t\t\t\t public void onFailure(Throwable error) { \n\t\t\t\t\t\t // TODOAuto-generated method stub \n\t\t\t\t\t\t super.onFailure(error); }\n\t\t\t\t \n\t\t\t\t @Override\n\t\t\t\t public void onSuccess(byte[] binaryData) { \n\t\t\t\t\t // TODOAuto-generated method stub \n\t\t\t\t\t super.onSuccess(binaryData);\n\t\t\t\t TALogger.d(TestActivity.this, \"kaishi8了\"); } };\n\t\t syncHttpClient .download(\n\t\t\t\t\"http://static.qiyi.com/ext/common/iQIYI/QIYImedia_4_01.exe\",\n\t\t\t\t fHandler);\n         //停止\n        fHandler.setInterrupt(interrupt);\n        \n```\n\n\n##图片模块 方法 \n* imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。\n\n```java\npackage com.test;\nimport com.ta.TAApplication;\nimport com.ta.util.bitmap.TABitmapCacheWork;\nimport com.ta.util.bitmap.TADownloadBitmapHandler;\n\nimport android.content.Context;\nimport android.view.LayoutInflater;\nimport android.view.View;\nimport android.view.ViewGroup;\nimport android.widget.BaseAdapter;\nimport android.widget.ImageView;\n\npublic class Adapter extends BaseAdapter\n{\n  TABitmapCacheWork imageFetcher;\n\tContext mContext;\n\n\tpublic Adapter(Context context, TAApplication application)\n\t{\n\t\tTADownloadBitmapHandler downloadBitmapFetcher = new TADownloadBitmapHandler(\n\t\t\t\tcontext, 100);\n\t\timageFetcher = new TABitmapCacheWork(context);\n\t\timageFetcher.setProcessDataHandler(downloadBitmapFetcher);\n\t\timageFetcher.setFileCache(application.getFileCache());\n\t\tthis.mContext = context;\n\t}\n\n\t@Override\n\tpublic int getCount()\n\t{\n\t\t// TODO Auto-generated method stub\n\t\treturn Images.imageThumbUrls.length;\n\t}\n\n\t@Override\n\tpublic Object getItem(int position)\n\t{\n\t\t// TODO Auto-generated method stub\n\t\treturn Images.imageThumbUrls[position];\n\t}\n\n\t@Override\n\tpublic long getItemId(int position)\n\t{\n\t\t// TODO Auto-generated method stub\n\t\treturn position;\n\t}\n\n\t@Override\n\tpublic View getView(int position, View convertView, ViewGroup parent)\n\t{\n\t\t// TODO Auto-generated method stub\n\t\tLayoutInflater inflater = (LayoutInflater) mContext\n\t\t\t\t.getSystemService(Context.LAYOUT_INFLATER_SERVICE);\n\t\tView baseView = inflater.inflate(R.layout.login_adapter, null);\n\t\tfinal ImageView imageView = (ImageView) baseView\n\t\t\t\t.findViewById(R.id.imageView);\n     //加载图片\n\t\timageFetcher.loadFormCache(getItem(position), imageView);\n\t\treturn baseView;\n\t}\n}\n\n\n\n使用 \n  @TAInjectView(id = R.id.gridView)\n\tGridView  gridView;\n\tAdapter adapter = new Adapter(this, getTAApplication());\n\tgridView.setAdapter(adapter);\n```\n\n##缓存模块 方法 \n* 很简单的实现缓存，以一个简单的文件缓存为例\n* 下载处理类\n\n```java\npackage com.test.file;\n\nimport com.ta.util.cache.TAProcessDataHandler;\n//下载处理类\npublic class TAProcessStringHandler extends TAProcessDataHandler\n{\n  @Override\n\tpublic byte[] processData(Object data)\n\t{\n\t\t// TODO Auto-generated method stub\n\t\tString mynameString=\"white_cat\";\n\t\t//这里对数据进行处理，如下载东西等等，转换为byte[]以供缓存存储使用\n\t\treturn mynameString.getBytes();\n\t}\n}\n```\n\n* 缓存结果返回操作类\n\n```java\npackage com.test.file;\n\nimport android.widget.TextView;\n\nimport com.ta.util.cache.TACallBackHandler;\n\npublic class TAStringCallBackHandler extends TACallBackHandler\u003cTextView\u003e\n{\n  @Override\n\tpublic void onStart(TextView t, Object data)\n\t{\n\t\t// TODO Auto-generated method stub\n\t\tsuper.onStart(t, data);\n\t}\n\n\t@Override\n\tpublic void onSuccess(TextView t, Object data, byte[] buffer)\n\t{\n\t\t// TODO Auto-generated method stub\n\t\tsuper.onSuccess(t, data, buffer);\n\t}\n\n\t@Override\n\tpublic void onFailure(TextView t, Object data)\n\t{\n\t\t// TODO Auto-generated method stub\n\t\tsuper.onFailure(t, data);\n\t}\n}\n```\n* 程序调用\n\n```java\nTAFileCacheWork\u003cTextView\u003e taFileCacheWork=new TAFileCacheWork\u003cTextView\u003e();\n  \ttaFileCacheWork.setFileCache(getTAApplication().getFileCache());\n\t\ttaFileCacheWork.setCallBackHandler(new TAStringCallBackHandler());\n\t\ttaFileCacheWork.setProcessDataHandler(new TAProcessStringHandler());\n\t\ttaFileCacheWork.loadFormCache(\"http://www.baidu.com\", textView);\n```\n\n##打印模块使用方法\n可以较快的轻易的是实现日志打印，支持日志打印的扩展，目前支持对sdcard写入本地打印、以及控制台打印\n添加打印器\nTALogger.addLogger(new TAPrintToFileLogger());\n调用打印\nTALogger.addLogger(new TAPrintToFileLogger());\nTALogger.d(TestActivity.this, \"test\");\n\n\n\n##下载器模块\n可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。\n```java\nprivate DownloadManager downloadManager;\ndownloadManager = DownloadManager.getDownloadManager();\n\t\tdownloadManager.setDownLoadCallback(new DownLoadCallback()\n\t\t{\n\t\t\t@Override\n\t\t\tpublic void onSuccess(String url)\n\t\t\t{\n\t\t\t\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void onLoading(String url, String speed, String progress)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\n\t\t\t\n\t\t\t}\n\t\t});\n\t\t//添加\n\t\tdownloadManager.addHandler(url);\n\t\t//继续\n\t\tdownloadManager.continueHandler(url);\n\t\t//暂停\n\t\tdownloadManager.pauseHandler(url);\n\t\t//删除\n\t\tdownloadManager.deleteHandler(url);\n\t\t//\n```\n\n\n* 后台下载\n\n```java\n\tprivate IDownloadService downloadService;\n\tServiceConnection serviceConnection=new ServiceConnection()\n\t{\n\t\t\n\t\t@Override\n\t\tpublic void onServiceDisconnected(ComponentName name)\n\t\t{\n\t\t\t// TODO Auto-generated method stub\n\t\t\t\n\t\t}\n\t\t\n\t\t@Override\n\t\tpublic void onServiceConnected(ComponentName name, IBinder service)\n\t\t{\n\t\t\t// TODO Auto-generated method stub\n\t\t\tdownloadService=(IDownloadService)service;\n\t\t}\n\t};\n\t\n\t//添加任务\n\tdownloadService.addTask(url)\n\t//暂停任务\n \tdownloadService.pauseTask(url)\n \t//继续任务\n \tdownloadService.continueTask(url)\n \t//删除任务\n\tdownloadService.deleteTask(url)\n```\n\n\n## 配置器模\n可以对简易的实现配对配置的操作，目前配置文件可以支持Preference、Properties对配置进行存取\n\n```java\n\tTAIConfig config = application\n\t\t\t\t.getConfig(TAApplication.PROPERTIESCONFIG);\n\t\tEntity entity = new Entity();\n\t\tentity.setB(false);\n\t\tentity.setD(10);\n\t\tentity.setI(1);\n\t\tentity.setF(1f);\n\t\tconfig.setConfig(entity);\n\t\tEntity cEntity = config.getConfig(Entity.class);\n\t\ttextView.setText(cEntity.toString());\n```\n\n\n## 网络状态监测模块\n当网络状态改变时，对其进行监测。\n\n```java\n TANetworkStateReceiver.registerObserver(new TANetChangeObserver()\n\t\t{\n\t\t\t@Override\n\t\t\tpublic void onConnect(netType type)\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onConnect(type);\n\t\t\t\tToast.makeText(TestActivity.this, \"onConnect\",\n\t\t\t\t\t\tToast.LENGTH_SHORT).show();\n\t\t\t}\n\n\t\t\t@Override\n\t\t\tpublic void onDisConnect()\n\t\t\t{\n\t\t\t\t// TODO Auto-generated method stub\n\t\t\t\tsuper.onDisConnect();\n\t\t\t\tToast.makeText(TestActivity.this, \"onDisConnect\",\n\t\t\t\t\t\tToast.LENGTH_SHORT).show();\n\t\t\t}\n\t\t});\n\t\t\n\t\t\n\t\t需要开启权限\n\t\t  \u003cuses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" /\u003e\n    \n    配置：\n     \u003creceiver android:name=\"com.ta.util.netstate.TANetworkStateReceiver\" \u003e\n            \u003cintent-filter\u003e\n                \u003caction android:name=\"android.net.conn.CONNECTIVITY_CHANGE\" /\u003e\n            \u003c/intent-filter\u003e\n        \u003c/receiver\u003e\n```\n\n\n#关于作者(白猫)\n* ThinkAndroid交流网站：[http://www.thinkandroid.cn](http://www.thinkandroid.cn)\n* ThinkAndroid交流QQ群 ： 169415162(交流群1已满)\n* ThinkAndroid交流QQ群 ： 230206891(交流群2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhite-cat%2FThinkAndroid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhite-cat%2FThinkAndroid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhite-cat%2FThinkAndroid/lists"}