从多个活动中设置意图上下文

时间:2018-03-31 15:49:10

标签: android android-intent android-context

我有一个可以从2个不同的活动中访问的课程。在这个类中,有一个方法可以创建一个启动不同活动的意图。我将上下文从一个活动传递给类,以便在几个方法中使用。其他方法似乎可以很好地完成Toast。一旦它意图发生到达方法,我就会崩溃。根据Logcat,它发生在设置目标上下文的地方(212)。 211处的错误是创建新意图的地方。

SplashActivity

Parsers parsers=new Parsers(SplashActivity.this);
            parsers.kickoff();

Parsers class

public class Parsers extends Activity  {
    Context context;

    public Parsers(Context context) {
        this.context = context;
        }

public void kickoff(){
//do stuff here that leads to goHome
}

public  void goHome() {
        Log.i("SCROLLS ", "IN GO HOME");
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();

    }
}

我知道我可以为每个活动名称创建一个构造函数,例如

 SplashActivity splashactivity;
     public Parsers(SplashActivity splashactivity) {
                this.splashactivity= splashactivity;
                }

 OtherActivity otheractivity;
     public Parsers(OtherActivity otheractivity) {
                this.otheractivity= otheractivity;
                }

由于意图上下文需要根据使用该类的活动而改变,因此这样做很少。我没有正确地将上下文传递给班级或者只是遗漏了其他东西吗?

Logcat Line:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
at com.yaadspice.myapp.Model.Parsers.goHome(Parsers.java:212)

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
at com.yaadspice.epgtv.Model.Parsers.goHome(Parsers.java:211)

0 个答案:

没有答案