我一直在尝试许多不同的方法并获得空指针异常。
场景:如果表中的行数为0,则Activity1在启动时加载并调用Activity2。现在我希望它在行数为0时返回到Activity1,并且该调用将从db处理程序中调用。 在数据库处理程序类中:
if(num ==0){
Activity1 bs1 = new Activity1();
Context context = bs1.getApplicationContext();
Intent intent = new Intent();//
intent.setClass(context, Activity1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
Activity1 onCreate()
int num = db.numOfRows();
if(num==0){
setContentView(R.layout.main);
} else {
startActivity(new Intent(this, Activity2.class));//
}
Activity2 onCreate()
super.onCreate(savedInstanceState);
setContentView(R.layout.moreprojects);
populateRows();
提前致谢。
答案 0 :(得分:3)
您不应该自己实例化Activity类。尝试以这种方式启动它:
Intent i = new Intent(context, MainActivity.class);
context.startActivity(i);
答案 1 :(得分:1)
您不使用构造函数来调用新活动。见下文:
Context context = bs1.getApplicationContext();
Intent intent = new Intent();
intent.setClass(context, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //required to launch from non-activity
context.startActivity(intent);
答案 2 :(得分:0)
您无法从尚未成为活动的上下文启动活动。在你的情况下,没有解决方案。如果用户想要
,您可以考虑发送带有PendingIntent的通知来启动您的活动