1

我一直在尝试许多不同的方法并获得空指针异常。

场景:Activity1 在启动时加载,如果表中的行数为 0,则调用 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();

提前致谢。

4

3 回答 3

3

您不应该自己实例化 Activity 类。尝试以这种方式启动它:

Intent i = new Intent(context, MainActivity.class);
context.startActivity(i);
于 2012-04-12T13:34:12.087 回答
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);
于 2012-04-12T13:35:05.003 回答
0

您不能从还不是活动的上下文开始活动。在您的情况下,没有解决方案。如果用户想要,您可能需要考虑发送带有 PendingIntent 的通知来开始您的活动

于 2012-04-12T14:12:06.487 回答