我有兩個類。一個使用Thread,另一個使用活動。從線程調用活動
public class MainActivity extends Activity
{
public void incrementCounter(int amount)
{
counter += amount;
Log.d("WHY", "why you no print");
}
}
然後在活動中使用計數器以滿足其需要。
它實現了一個線程另一類是這樣的:
public class ScoreSystem implements Runnable
{
private int count = 0;
private MainActivity reference;
public void run()
{
Looper.prepare();
while(true)
{
if(count >= 100 && reference != null)
{
//gets inside the if statement just fine
reference.incrementCounter(count);
count = 0;
}
count++;
}
}
}
的問題是,reference.incrementCounter(count);
從來沒有真正運行。 該引用不爲空並指向正確的活動。我沒有發佈代碼的一部分,因爲它是微不足道的,不會幫助任何人,但浪費你的時間。
如何確保我的線程調用活動?
有兩個解決方案。您需要在Thread類中使用MainActivity引用,否則您需要將「incrementCounter」方法創建爲Static。 – SilentKiller 2014-09-22 06:22:19
我有參考。如果我將'incrementCounter()'移到線程之外,那麼它可以工作,但不在線程內。 – klaux 2014-09-22 06:23:43
你沒有初始化或分配任何東西到'MainActivity引用;' – SilentKiller 2014-09-22 06:25:07