Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t从异步方法启动新活动_Java_Android_Android Asynctask - Fatal编程技术网

Java Can';t从异步方法启动新活动

Java Can';t从异步方法启动新活动,java,android,android-asynctask,Java,Android,Android Asynctask,尝试从异步方法启动新活动,但由于某些原因,该活动无法启动 protected void onPostExecute(Integer result) { try { if (qResult.equals(userinfo[1])) { File file = new File("info"); FileWriter fw = new FileWriter(file);

尝试从异步方法启动新活动,但由于某些原因,该活动无法启动

protected void onPostExecute(Integer result) {
        try {
            if (qResult.equals(userinfo[1])) {
                File file = new File("info");
                FileWriter fw = new FileWriter(file);
                fw.write(userinfo[0] + "\n" + userinfo[1]);
                context.startActivity(new Intent(context,OtherActivity.class));
我通过将当前活动的上下文作为构造函数中的一个参数添加到中来传递,如下所示:

class CreateFileConnectToDatabase extends AsyncTask<String, Void, Integer> {

    Activity activity;
    Context context;    //ELIMINA COGLIONE
    String qResult = "";

    public CreateFileConnectToDatabase(Activity activity){
        this.activity = activity;
        this.context = activity.getApplicationContext();
    }
类CreateFileConnectToDatabase扩展了AsyncTask{
活动;
Context;//ELIMINA COGLIONE
字符串qResult=“”;
公共CreateFileConnectToDatabase(活动){
这个。活动=活动;
this.context=activity.getApplicationContext();
}

但是,即使到达onPostExecute方法,它也不会启动新活动。我是否无法调用新活动以从嵌套异步类启动?

您必须在AsyncTask构造函数中传递上下文才能获得正确的活动上下文,因此:

public CreateFileConnectToDatabase(Context context){
    this.context = context.getApplicationContext();
}
并将其称为传递活动或片段上下文:

new CreateFileConnectToDatabase(yourcontext).execute();

O.T.
//ELIMINA COGLIONE
的评论让我从椅子上下来。

他的问题是他使用的是一个不是活动上下文的上下文来启动活动,因此他需要添加标志来启动新活动(或者他可以只使用活动…)请发布更多关于如何调用异步类执行方法的代码