我创建了android应用程序并使用JSON
从服务器获取数据,但我得到了以下错误:
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题
谢谢
小智 131
你必须在MainActivity Class上插入2行"StrictMode",例如下面的例子:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try {
// JSON here
} catch (JSONException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setContentView(R.layout.activity_main);
Intent intent=new Intent(this,HomeActivity.class);
startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
Aey.Sakon
Ars*_*Ali 41
更好地使用这里AsyncTask
提到的,一个替代只是摆脱是使用:Exception
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
Run Code Online (Sandbox Code Playgroud)
或这个 :
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
//Your code goes here
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
});
thread.start();
Run Code Online (Sandbox Code Playgroud)
在您的活动中Exception
发生的地方.
小智 13
只需在create方法后添加两行
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
75606 次 |
最近记录: |