从构造函数中的非活动类开始新活动

时间:2012-04-06 17:53:48

标签: android

我知道很多像这样的问题,但我找不到答案。

public class Model3D extends ARObject implements Serializable{

    public Model3D(Context context)
    {
        super("model", "", 80.0, new double[]{0,0});
        mContext = context;
    }

    public Model3D(Model model,String patternName)
    {
        super("model", patternName, 80.0, new double[]{0,0});
        Intent myIntent = new Intent(mContext, toast.class);
        mContext.startActivity(myIntent);
    }
}

public class toast extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        Toast.makeText(getApplicationContext(), "Let's do some search action", Toast.LENGTH_SHORT).show();
    }
}

每次我这样做,我的程序都会停止工作。 实际上我想在构造函数中调用intent,因为我想显示一个toast消息,如果我在构造函数中使用toast消息,则会出错。

plz帮助 谢谢

1 个答案:

答案 0 :(得分:0)

如果您只想展示吐司,为什么要额外的活动? 您只能在ui线程上显示toasts。因此,如果未在UI线程中调用构造函数,则必须具有对Activity或Handler的引用。

public Model3D(Model model, String patternName, final Activity activity) {
    super("model", patternName, 80.0, new double[] { 0, 0 });

    activity.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            Toast.makeText(getApplicationContext(), "Let's do some search action", Toast.LENGTH_SHORT).show();          }
    });
}