从非活动开始活动

时间:2014-09-05 02:55:59

标签: java android

我有一个Activity课程。

public class A extends Activity
{
}

然后我有一个不是活动的课程,但我想让它开始活动A

public class B
{
    public B()
    {
       Intent I = new Intent(null, A.class);
       i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    }
}

代码来自这个应该有用的问题:Calling startActivity() from outside of an Activity? 但是,当我运行它时,我永远不会从第一个活动更改为活动A。我究竟做错了什么?我应该倾听FLAG_ACTIVITY_NEW_TASK内的A吗?

1 个答案:

答案 0 :(得分:3)

这样的事情应该有效:

public class B {
Context context;

public B(Context context) {
    this.context = context;

}

public void startNewActivity(String str) {
    try {
        Intent i = new Intent(context, Class.forName(str));
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}
}

B类用例:

    B b = new B(A.this);
    b.startNewActivity("MainActivity");//the "MainActivity" is the className of the java class

注意我发现这种方式很奇怪而且有点矫枉过正。