【问题标题】:Launch an activity from a different class从不同的班级启动活动
【发布时间】:2011-08-31 16:19:05
【问题描述】:

我正在尝试在 AsyncTask 的 onPostExecute 方法中启动一个活动。这个异步类在另一个类中实现,该类dosent 扩展了一个活动。但是我将应用程序上下文作为参数传递给此类中的方法。 这是示例代码

@Override
        protected void onPostExecute(String result) 
        {
            try
            {
                System.out.println("Response : "+result);
                Toast.makeText(context, "Account Successfully Created", Toast.LENGTH_LONG).show();
                Intent intent = new Intent(context,OperationPanelActivity.class);
                context.startActivity(intent);
             }
             catch(Exception e)
             {
                   Log.d("Error: ", e.getMessage());
             }
        }

在这个类中,我正在使用这样的应用程序上下文

public void createUser(String userName,String password,String firstName,String lastName,String email,Context context)
    {
        InvokeWebService service = new InvokeWebService();
        CALL_URL = Global.SERVICE_URL+"createuserget";
        this.context = context;
        service.execute(new String[] {userName,password,firstName,lastName,email});
    }

但是新活动没有被调用。

我如何在安卓中做到这一点? 谢谢

【问题讨论】:

    标签: java android android-activity android-asynctask


    【解决方案1】:

    这是因为您的活动可能在您运行 onPostExecute 时完成。您应该以某种方式通知活动并让活动开始新活动

    【讨论】:

    • 感谢您的回复。但是我是android新手,请您多解释一下。谢谢
    • 选项A:你把你的异步任务放在你的活动中(这是不好的)选项B,有大约100个通信系统(内容观察者,通知管理器,消息和处理程序,服务绑定)你可以用来告诉活动工作完成。很可能,您的 asynctask 将在服务中,因此您的活动应该绑定此服务。
    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 2012-05-20
    • 2011-10-10
    相关资源
    最近更新 更多