Android 异步任务和 android.content.ContextWrapper.getPackageName(ContextWrapper.java:127)
Android asynctask and android.content.ContextWrapper.getPackageName(ContextWrapper.java:127)
我的 android 应用程序有问题,我使用 AsyncTask 连接在线 bbdd。这是我的背景
protected ResultSet doInBackground(String...params) {
boolean login = false;
String input = params[1];
try{
Connection conn;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(ipServidorMySQL, usuarioMySQL, contrasenaMySQL);
rs = (ResultSet) stmt.executeQuery();*/
PreparedStatement stmt = (PreparedStatement) conn.prepareStatement(input);
ResultSet rs = stmt.executeQuery();
return rs;
}
catch (Exception e){
return null;
}
}
这是 onPostExecute
protected void onPostExecute(ResultSet rs){
MainActivity.rs=rs;
if(pd != null)
pd.dismiss();
MainActivity m= new MainActivity();
m.useRS(rs);
}
但在我的 useRS 中,我尝试启动 activity,但出现此错误
android.content.ContextWrapper.getPackageName(ContextWrapper.java:127)
这是我的用户函数
public void useRS(ResultSet r){
rs = r;
try {
if(rs!=null && rs.next()==true){
Log.i("Nombre", r.getString("apellidos"));
Intent i = new Intent(c, Reservas.class);
i.putExtra("nombre", r.getString("nombre"));
i.putExtra("apellidos", r.getString("apellidos"));
startActivity(i);
tv3.setText(r.getString("apellidos"));
}
else {
Log.i("SIn log", "sin log");
Toast toast = Toast.makeText(c, "Usuario o contraseña incorrectos", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.show();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我主目录中的用户activity
c 是 mainactivity
上的上下文
private Context c = this;
自从我将 Intent 放入开始 activity 以来,所有的工作都从 mi 开始,每个数据都很好......任何人都可以帮助我???
抱歉我的英语不好
我找到了答案,通过参数将上下文传递给异步任务,然后return将相同的上下文传递给用户函数。
^^
我的 android 应用程序有问题,我使用 AsyncTask 连接在线 bbdd。这是我的背景
protected ResultSet doInBackground(String...params) {
boolean login = false;
String input = params[1];
try{
Connection conn;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(ipServidorMySQL, usuarioMySQL, contrasenaMySQL);
rs = (ResultSet) stmt.executeQuery();*/
PreparedStatement stmt = (PreparedStatement) conn.prepareStatement(input);
ResultSet rs = stmt.executeQuery();
return rs;
}
catch (Exception e){
return null;
}
}
这是 onPostExecute
protected void onPostExecute(ResultSet rs){
MainActivity.rs=rs;
if(pd != null)
pd.dismiss();
MainActivity m= new MainActivity();
m.useRS(rs);
}
但在我的 useRS 中,我尝试启动 activity,但出现此错误 android.content.ContextWrapper.getPackageName(ContextWrapper.java:127)
这是我的用户函数
public void useRS(ResultSet r){
rs = r;
try {
if(rs!=null && rs.next()==true){
Log.i("Nombre", r.getString("apellidos"));
Intent i = new Intent(c, Reservas.class);
i.putExtra("nombre", r.getString("nombre"));
i.putExtra("apellidos", r.getString("apellidos"));
startActivity(i);
tv3.setText(r.getString("apellidos"));
}
else {
Log.i("SIn log", "sin log");
Toast toast = Toast.makeText(c, "Usuario o contraseña incorrectos", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.show();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我主目录中的用户activity c 是 mainactivity
上的上下文 private Context c = this;
自从我将 Intent 放入开始 activity 以来,所有的工作都从 mi 开始,每个数据都很好......任何人都可以帮助我???
抱歉我的英语不好
我找到了答案,通过参数将上下文传递给异步任务,然后return将相同的上下文传递给用户函数。
^^