1、在学习两个Activity的切换时,重新把新的工程部署上模拟器时候出现错误:ActivityManager: Warning: Activity not started, its current task has been brought to the front。
原因是:两个应用起了同样的名字,模拟器总是识别第一个
或者是两个应用中的一个已经在系统的缓存中,这是android的机制
解决方法是:重新启动一下模拟器;如果还是不行,可以先把模拟器delete掉再重新add就可以了。
2、另外,若是有版本信息警告:
WARNING: Application does not specify an API level requirement!
Device API version is 8 (Android 2.2)
在androidMainfest.xml 里的
3、若已经添加还出现如下警告:
WARNING:
versions, compatibility behaviors may be enabled) withandroid:targetSdkVersion=”?”
只要在上面的地方再设置一个target目标版本就ok了(见如下蓝色改动地方)
<uses-sdk android:minSdkVersion=”8”
4、若出现这个警告:
把
5、在android平台下,进行多线程编程时,经常需要在主线程之外的一个单独的线程中进行某些处理,然后更新用户界面显示。但是,在主线线程之外的线程中直接更新页面显示的问题是:系统会报这个异常,android.view.viewroot$calledfromwrongthreadexception: only the original thread that created a view hierarchy can touch its views. (只有原始创建这个视图层次(view hierachy)的线程才能修改它的视图(view)。)。
也就是说必须在程序的主线程(也就是ui线程)中进行更新界面显示的工作。可以采用下面的方法之一来解决:
解决方案1:在activity.oncreate(bundle savedinstancestate)中创建一个handler类的实例, 在这个handler实例的handlemessage回调函数中调用更新界面显示的函数。例如:
public class ExampleActivity extends Activity {
Handler h = null;
@override
public void onCreate(Bundle savedinstancestate){
h = new Handler(){
@override
public void handleMessage(Message msg){
// call update gui method.
}
};
}
}