unexpectedly. Please try again. 然后会要祈求强制退出。
这是一个经典错误, Socket不能对外连接,具体错误不会被
报出,调试的时候,但能看到Exception,, 只要存在网络互联,
就挺身而出,让你的程序不得运行。
原因是: 需要访问到网络,所以,在AndroidManifest.xml
中,需要进行如下配置:
在下面第三个页面permission中,选择“Add...”选择“uses
permission”,在右面name中选择
“android.permission.INTERNET” ;然后在
AndroidManifest.xml中会出现下面语句:
<uses-permission
android:name="android.permission.INTERNET" />
再次运行程序,就OK了。
2. 出现错误“The *** has not responding”:
原因有如下几种:服务器没有打开、
客户端要连接的IP不对、
Server和Client的端口不一致
、
客户端与服务器的接收和发送
没有一一对应,
导致等待超时,出现异常。
但是我的问题还为解决?
3。在学习Android的时候,偶尔会遇到异常。像要是遇到异常:“The application has stopped unexpectedly”的时候,首先去查看自己的代码是否有逻辑上的错误或者是漏洞,例如是不是使用了一个null对象。对象使用之前是否已经实例 化。另外针对Android要特别注意,整个的程序中要关心的有三个部分:
业务逻辑--即逻辑上是否合理,代码部分是否正确。这个主要可以通过调试运行查看Log记录。
资源应用--Android的资源都放在了res文件下面,如Activity的布局一般都放在res/layout下面,并且一般是一个xml文件对应一个Activity。
AndroidManifest.xml--之前我在学习别人一个例子的时候就忽略了这个非常重要的东西,才导致了The application has stopped unexpectedly的发生。
1.public void onClick(View v) {
Thread t = new Thread(){
public void run(){
// Long time comsuming operation
}
};
t.start();
}
public void onClick(View v) {
Thread t = new Thread(){
public void run(){
// Long time consuming operation
_activity.runOnUiThread(new Runnable() {
@Override
public void run() {
_activity.setStatus("Long Operation Completed");
}
});
}
};
t.start();
}
2.
public void onClick(View v) {
// TODO Auto-generated method stub
Thread t = new Thread(){
@Override
public void run() {
// Long time consuming operation
status.post(new Runnable() {
@Override
public void run() {
status.setText("Long Operstion Completed");
}
});
}
};
t.start();
}
3.
public void onClick(View v) {
// TODO Auto-generated method stub
Thread t = new Thread(){
@Override
public void run() {
// Long time consuming operation
status.postDelayed(new Runnable() {
@Override
public void run() {
status.setText("Long Operstion Completed");
}
}, 1000);
}
};
t.start();
}
4.
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// Code to process the response and update UI.
}
};
public void onClick(View v) {
Thread t = new Thread(){
public void run(){
// Long time comsuming operation
Message myMessage=new Message();
Bundle resBundle = new Bundle();
resBundle.putString("status", "SUCCESS");
myMessage.obj=resBundle;
handler.sendMessage(myMessage);
}
};
t.start();
}
5.
public class LongTimeConsumingOperation extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
// perform Long time consuming operation
return null;
}
/* (non-Javadoc)
* @see android.os.AsyncTask#onPostExecute(java.lang.Object)
*/
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}
/* (non-Javadoc)
* @see android.os.AsyncTask#onPreExecute()
*/
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
/* (non-Javadoc)
* @see android.os.AsyncTask#onProgressUpdate(Progress[])
*/
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
}
public void onClick(View v) {
new LongTimeConsumingOperation().execute("");
}
int占4个字节,即表示int类型的存储大小为4个字节。 如果转成十进制来说就是“-2147483648 ~2147483647” 即:int只能存放这么大的数字。。。超出范围则溢出。。。 再来说byte byte最大能够存放 -128~127 的数值。 那为什么是 -128~127 这个跟字节编码有关 首先知道byte是一个字节保存的,有8个位,也就是8个0、1。 8个位的第一个位是符号位, 也就是说0000 0001代表的是数字1 1000 0000代表的就是-1 所以正数最大位0111 1111,也就是数字127 负数最大为1111 1111,也就是数字-128