私は最近、「Atom Reader で読むのが難しい」という質問からやりました。今、Android Froyo から Jellybean まで、私が作成したブログ アプリの最大の互換性について考えています。問題は、 StrictModeを使用してチェック中にエラーが通知されたことです。Windows 7 OS経由で Eclipse IDE を実行しています。
//-----[ UI Thread Debug Setup ]-----
if(DEVELOPER_MODE)
{
/*
*
* Manage main thread control for Android 3.0 and later. Not work on Android 2.3.3 and below, otherwise, you will get an error
* for changing minimum SDK version at manifest. If you want to publish this project as an Android app (APK) that will run on
* Android 3.0 or later, set DEVELOPER_MODE to "true", otherwise, will not work. (App for Boy Kuripot [Ver. 1])
*
*/
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectAll().penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
}
SDK の最小バージョンを 7 に設定すると、エラーが赤い線で表示されます。
Android マニフェストを介して最小 SDK バージョンを 11 に設定すると、次のようになります。
また、AsyncTaskを使用して実行すると、遅くなったり、速くなったり、単に遅れたりします。
//TODO _________________________[ Activity Starter Subclass ]_________________________
private class Post_Task extends AsyncTask<String, Integer, String> // --> This class will be revised and to be used for next version. (Compatible now with Android 2.1 and later.)
{
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected String doInBackground(String... params)
{
//-----[ RSS Feed Setup ]-----
xp.Get_Parse_Feed(URL_link, is, lm.headlines, lm.links);
return "All done!";
}
@Override
protected void onProgressUpdate(Integer... values)
{
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
}
}
このxp.Get_Parse_Feed(URL_link, is, lm.headlines, lm.links);
コードを元に戻してonCreate()でメイン スレッドとして実行すると、リンクがすぐに適切に読み込まれることがあります。問題は、どれを管理すればよいか、このブログ アプリを Android 2.1 以降と互換性を持たせるにはどうすればよいかということです。