Java 从非活动开始活动
我有一个Java 从非活动开始活动,java,android,Java,Android,我有一个活动课程 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); } } 代码取自此问题,该问题应适用于: 然而,当我运行它时,我从不从我的第一个活动
活动
课程
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);
}
}
代码取自此问题,该问题应适用于:
然而,当我运行它时,我从不从我的第一个活动更改为活动
A
。我做错了什么?我是否应该在A
中收听标记活动\u新任务
?类似的内容应该可以:
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
注意我发现这样做既不明智又过分。你必须有一个上下文才能开始一项活动。如果您有一个上下文,那么您几乎可以从您调用的每个点开始活动
startActivity()
?startActivity不能在B
内部调用,因为B
不是活动@IllegalArgument你能解释上下文吗?@MikeJohn你可以在你的b类中使用startActivity,但你需要一个有效的上下文。背景。开始触觉(意图)@IllegalArgument如何获取此有效上下文?这是对a类的引用吗?如果这一行a.class
可以更通用,适用于其他活动,我可能可以使用它。可能使用context.class
(这可能会失败。)