我有一个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
吗?
答案 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
注意我发现这种方式很奇怪而且有点矫枉过正。