我的SMS應用程序的工作調用一個活動的方法和我在我的MainActivity
的方法來執行一個按鈕:如何從另一個類
public void updateMessage() {
ViewMessages.performClick();
}
這種方法效果很好,執行按鈕當我從MainActivity
類中調用此方法時,請點擊。
但是,當我從任何其他類此方法,如下圖所示,在這裏我所說的主要活動的從IntentServiceHandler
類updateMessage
方法,我得到一個NullPointerException
:
顯示java.lang.NullPointerException:嘗試調用虛方法「布爾android.widget.Button.performClick()」上一個空對象引用
public class IntentServiceHandler extends IntentService {
public IntentServiceHandler() {
super("IntentServiceHandler");
}
@Override
protected void onHandleIntent(Intent intent) {
String message = intent.getStringExtra("message");
TransactionDataBase transactionDB = new TransactionDataBase(this, 1);
transactionDB.addMessage(message);
MainActivity mainActivity = new MainActivity();
mainActivity.updateMessage();
}
}
我該如何處理呢?
編輯:我甚至試圖使updateMessage方法靜態的,現在我得到下面的異常
android.view.ViewRootImpl $ CalledFromWrongThreadException:只有創建視圖層次可以觸摸其觀點原來的線程。
從來沒有'新'一個活動。這是你的第一個問題。您的活動可能需要綁定到該服務,並處理消息 –
更新問題。我使它成爲靜態的,現在我得到了一個不同的例外 –
'static'不是正確的解決方案。這只是一個可怕的解決方法。 –