0

我有一种方法正在进行大量计算,然后按如下方式调用意图

public void sampleMethod(final Context cont)
{
 .
 .
 (huge calculation [50-80 lines])
 .
 .
Intent intent = new Intent(cont, TimesheetMain.class);
            finish();
            startActivity(intent);
}

这存在于活动“SampleActivity”中。当我试图通过 Activity 'B' 中的 Activity 'SampleActivity' 对象访问它时,如下所示:

Context context = this;
SampleActivity sa = new SampleActivity();
sa.sampleMethod(context);

从活动“B”访问它时,我得到了NullPointerException一行代码。startActivity我不知道我在哪里出错了。请帮帮我

编辑 2

当我向它添加上下文时,这似乎有效cont.startActivity(intent),但我需要知道为什么我不应该在辅助类中使用另一个类或另一个活动的功能?难道是android框架的原因?在过去的两个月左右,我一直在这样做(没有意图部分),我从未在模拟器或设备(Nextbook Professional 7 SE)中遇到任何突然的强制关闭问题;请用一个合法的例子解释它

4

2 回答 2

2

您不应该像这样自己创建明确的活动实例:

SampleActivity sa = new SampleActivity();

请为您的问题提供更好的描述,以及您希望通过此问题的结果实现什么。

于 2012-11-15T13:24:20.660 回答
1

尝试以下更新的代码:

public void sampleMethod(final Activity cont)
{
Intent intent = new Intent(cont, TimesheetMain.class);
            cont.finish();
            cont.startActivity(intent);
}

还将此方法移动到 util 类并从活动中调用它并传递活动引用,如下所示

class ActivityB extends Activity
{
.
.
.

Util.sampleMethod(this);
}
于 2012-11-15T13:24:31.160 回答