退出重程式序,TextView不可見(不顯示)問題(極少情況下遇到)
這個問題,在極少情況下可能會遇到,下面會有可能有效的解決方法,但是其中原理還不知道。
在專案中,線上程中獲取資訊,然後通過handler傳遞,在handler的handleMessage方法中處理資訊並且用一個TextView把資訊顯示出來。
demo版本程式碼:
public class DemoActivity extends Activity implements OnClickListener{
private Button mButton;
private TextView mTextView;
public static int i = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button)findViewById(R.id.button);
mButton.setOnClickListener(this);
mTextView = (TextView)findViewById(R.id.textView);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
changeTextView();
break;
default:
break;
}
}
Handler mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
mTextView.setText("i = " + i++ + ", j = " + msg.arg1);
return true;
}
});
private void changeTextView() {
new Thread(new Runnable() {
@Override
public void run() {
int j = 0;
try {
while (j < 5) {
j++;
Message msg = Message.obtain();
msg.arg1 = j;
mHandler.sendMessage(msg);
Thread.sleep(2000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
情況近似於上面demo程式碼,但是上面程式碼中沒有出現下面將要說到得問題。在我的專案程式碼中,第一次裝上應用,完全沒有問題,handler傳遞訊息,handlerMessage方法處理訊息,然後可以在TextView中顯示出來。但是,當按返回鍵退出程式後,再一次進入,通過handler傳遞訊息,在handlerMessage方法中處理訊息,在log顯示,可以獲取訊息,但是TextView卻不能顯示。使用以下程式碼列印Log:
if (mResultText.isShown()) {
Log.v("@@@@@@", "mResult is shown in @@@@@");
} else {
Log.v("@@@@@@", "mResult is not shown in @@@@@");
}
執行
Log.v("@@@@@@", "mResult is not shown in @@@@@");
也就是說,當再次進入程式後,mResultText(一個textview) isShown方法返回false,不可見。設定為可見:
mResultText.setVisibility(View.VISIBLE);
也不起作用。
解決方法:
把mResultText設為靜態:
private static TextView mResultText;
問題解決,但是其中原理還不明白。如果有清楚原因者,望相告,謝謝(注:Activity的launchMode="singleInstance")。同時,這個問題應該很少會有人遇到。
相關文章
- 驗證碼不顯示是什麼情況
- TextView未繪製情況下獲取其寬高TextView
- 編譯Android14遇到lunch不顯示target的問題編譯Android
- 系統中部分西班牙語字型顯示亂碼,顯示為問號。如何處理,有人遇到類似的情況嗎
- 【菜鳥學安卓】- TextView 顯示Html 一 解決圖片顯示不了的小問題安卓TextViewHTML
- 雲端計算 常見問題案例彙總情況
- 如何在不影響整個業務情況下重構AppAPP
- 高併發高負載情況下常見的3種效能問題負載
- oracle 11g rac asmcmd du 命令不顯示的一個情況OracleASM
- iis + php 遇到問題:php-cgi.exe - FastCGI 程式意外退出PHPAST
- Chrome還會在以下這兩種情況下顯示“Not secure”警告……Chrome
- zblog主題下載成功不顯示
- weblogic 驗證碼 不顯示問題Web
- oxyplot ScatterPoint新增後不顯示問題
- FrameLayout裡有CardView造成的顯示順序問題View
- TextView搜尋文字高亮顯示TextView
- 在不影響程式使用的情況下新增shellcode
- 微信小程式tabBar顯示問題微信小程式tabBar
- 小程式view標籤新增背景圖真機不顯示問題View
- git branch不顯示本地分支的問題(二)Git
- Java解決Itext pdf中文不顯示問題Java
- Swift UIButton 圖片 文字 同時顯示 不顯示,細節問題SwiftUI
- iOS 極光推送遇到的問題iOS
- 如何這沒有顯示器的情況下獲取樹莓派IP?樹莓派
- AverageTextView——均勻顯示的TextViewTextView
- Qt 彈出的子頁面在未關閉的情況下,關閉主窗體,程式不退出的情況解決QT
- bootstrap datepicker 在bootstrap modal中不顯示問題boot
- [提問交流]onethink UploadImages外掛不顯示問題
- Qt5問題解決:關於程式執行後,編譯成功,卻顯示crashed異常退出,不輸出結果QT編譯
- vue 專案引入字型圖示報錯、不顯示等問題Vue
- PbootCMS內頁打不開的常見情況彙總boot
- 網路問題日漸嚴重,CC防護必不可少,你還知道哪些方式?
- 請問python遇到這種情況怎麼解決?Python
- Android--TextView 文字顯示和修改AndroidTextView
- Python一行輸出不顯示的問題Python
- layui 輪播圖動態資料不顯示問題UI
- vue-解決background-image:url不顯示問題Vue
- win10推送圖示不見了如何顯示_win10推送圖示不見了怎麼辦Win10