Download on Android 2.3Program, Run on Android 4.0Android. OS. networkonmainthreadexceptionException. In 4.0, the access network cannot be performed in the main program. There are two solutions.
One is to add in the main program:
// For details, see strictmode. setthreadpolicy (New strictmode. threadpolicy. builder (). detectdiskreads (). detectdiskwrites (). detectnetwork () // or. detectall () for all detectable problems. penaltylog (). build (); strictmode. setvmpolicy (New strictmode. vmpolicy. builder (). detectleakedsqlliteobjects (). detectleakedclosableobjects (). penaltylog (). penaltydeath (). build ());
The other is to start the thread to execute the download task:
Public void oncreate (bundle savedinstancestate) {super. oncreate (savedinstancestate); setcontentview (R. layout. main); // start the thread to execute the download task new thread (downloadrun ). start ();}/*** download thread */runnable downloadrun = new runnable () {@ override public void run () {// todo auto-generated method stub updatelistview ();}};
Sharedpreferences mode in Android
Mode_multi_process
This value is a flag. In Android 2.3 and earlier versions, this flag is enabled by default, allowing multiple processes to access the same sharedprecferences object. For later Android versionsMode_multi_process
This value is passed to the mode parameter to enable multi-process access.
When obtaining sharedpreferences, we need to determine the SDK version:
Int _ sdklevel = build. version. sdk_int; sharedpreferences _ sp = $ context. getsharedpreferences (setting_name, (_ sdklevel> build. version_codes.froyo )? 4: 0 );