正确地从非活动类开始一个意图

时间:2015-09-06 18:43:19

标签: java android android-intent android-activity

我的应用程序是一个OpenGL ES 2.0应用程序,因此,有2个必需的线程(UI线程和GL线程)

我有一个扩展Activity的类,从那里我可以很容易地开始这样的意图:

Public class MainActivity extends Activity{

    public void goToSomeWebsite(){

        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(webAddress)));

    }
}

现在,我有另一个类,它基本上是一个Scene,我在该类中有一个onTouchEvent方法,以及一个render方法和一些其他方法。因此,onTouchEvent在UI线程和render方法(以及其他)上运行,在GL线程上运行。

所以我的班级会是这样的:

public class MyScene implements Scene(){

    @Override
    public void render(){
        //Render something here
    }

    @Override
    public void updateLogiC(){
        //Do some other work here
    }

    @Override
    public boolean onTouchEvent(MotionEvent event){
        //Handle touch events
        return false;
    }
}

从上面的课程中,开始这个其他意图的正确(和安全)方式是什么?

我是从GL Thread(比如上面的updateLogic)还是从UI线程(如上面的onTouchEvent方法)开始的,这是否重要?

目前,我有一个Activity类的句柄,只需执行以下操作:

activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(webAddress)));

它工作正常(这是从GL线程完成的),然而,有些东西告诉我这不是完成此任务的正确方法。

1 个答案:

答案 0 :(得分:0)

如果您的班级提供上下文,应用程序等,您可以轻松地执行此操作

getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://stackoverflow.com/")));

getApplication().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://stackoverflow.com/")));