1、问题:emulator-5554 disconnected!
解决:cmd下,adb kill-server,然后adb start-server。注意kill和-server、start和-server之间没有空格,前提是保证在系统中添加了adb的环境变量。
2、问题:Application的使用
解决:如果想要在应用中保存全局数据(不写在数据库中),使用Application是一个好办法。
(1)、写一个自定义类,继承Application类,复写onCreate方法。
package com.app; import java.util.LinkedHashMap; import java.util.Map; import com.moodlog.R; import android.app.Application; public class MyApplication extends Application { public static final int NUM_PAGE = 6;// 总共有多少页 public static int NUM = 20;// 每页20个 private static MyApplication mApplication; private Map<String, Integer> mFaceMap = new LinkedHashMap<String, Integer>(); public synchronized static MyApplication getInstance() { return mApplication; } @Override public void onCreate() { super.onCreate(); mApplication = this; initFaceMap(); } public Map<String, Integer> getFaceMap() { if (!mFaceMap.isEmpty()) return mFaceMap; return null; } private void initFaceMap() { // TODO Auto-generated method stub mFaceMap.put("[呲牙]", R.drawable.f000); mFaceMap.put("[调皮]", R.drawable.f001); mFaceMap.put("[流汗]", R.drawable.f002); mFaceMap.put("[右太极]", R.drawable.f105); mFaceMap.put("[闭嘴]", R.drawable.f106); } }
上面代码,在Application中保存了页数、每页数量、表情图片,你可以自己定义要保存的数据。
(2)、最重要、也是最容易漏掉的步骤:在AndroidManifest.xml的application节点加入自定义的类,如:
<application
android:name="com.app.MyApplication"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name" >
</application>
(3)、如果在应用中包含多个service进程,Application类的onCreate方法可能会被多次调用。这种情况只是在网上见过,自己还没有碰到过。
3、问题:如何使用Java中常见的线程不安全的类,比如SimpleDateFormat类
解决:使用ThreadLocal类。
private final static ThreadLocal<SimpleDateFormat> dateFormater = new ThreadLocal<SimpleDateFormat>() { @Override protected SimpleDateFormat initialValue() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); } };
使用时,dateFormater.get().format(new Date());