我知道有對NPE
許多不同的原因,但我的是稍顯怪異(至少對我來說)。的NullPointerException上getActivity()。runOnUiThread(新的Runnable(){
所以我將我Activities
到Fragments
成功,但我的問題似乎來自顯示日期的函數,當應用程序正在運行時,一切正常,但只要按下後退按鈕,應用程序組合就會關閉,然後在日誌中它說我'因爲看代碼,我在這方面做了一些研究,但不幸沒有得到任何答案。
這是錯誤i來自當你按下後退按鈕時。
getActivity().runOnUiThread(new Runnable(){
此外,我已嘗試禁用後退按鈕(因爲我建立一個發射器,它不需要)。但它似乎並沒有工作。
這裏是整個日期顯示方法/函數的代碼。
// (Calendar) Date function - Displays dateview on Card
final boolean keepRunning1 = true;
Thread thread_two = new Thread(){
@Override
public void run(){
while(keepRunning1){
// Make the thread wait half a second. If you want...
try {
Thread.sleep(500);
} catch (InterruptedException e) {
Toast.makeText(getActivity().getApplicationContext(), "Default Signature Fail", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
getActivity().runOnUiThread(new Runnable(){
@Override
public void run(){
TextView date = (TextView) getView().findViewById(R.id.date);
date.setText(DateUtils.formatDateTime(getActivity().getBaseContext(), System.currentTimeMillis(),DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR));
}
});
}
}
};
thread_two.start();
感謝您的時間,希望您能對我做錯的事情有所瞭解。
的logcat -
05-23 21:17:33.216: E/AndroidRuntime(6906): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.runOnUiThread(java.lang.Runnable)' on a null object reference
05-23 21:17:33.216: E/AndroidRuntime(6906): at com.activelauncher.fragments.UtilsFragment$2.run(UtilsFragment.java:102)
有可能在後退按鈕單擊時「Activity」被關閉,因此您將getActivity()作爲null – Apoorv
@Apoorv如何停止關閉後退按鈕時的活動? – Robin