我有不確定的進度條,當我從互聯網上讀取數據時顯示。要顯示/去除進度條,我使用其可見性。當我打開進度條選項時,我的應用程序從網上讀取數據15分鐘,當我刪除進度條代碼時,它持續20秒。它可能會讓我的應用程序變得如此緩慢?與不確定進度條的android性能問題
main_activity.xml:
<TableRow
android:gravity="center_horizontal"
android:layout_marginTop="10dip"
android:visibility="gone"
android:id="@+id/progress_bar"
>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="30dip"
android:minWidth="30dip"
android:maxHeight="30dip"
android:minHeight="30dip"
android:indeterminate="true"
android:layout_gravity="center_horizontal"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/searchingInProgress"
android:layout_gravity="center|center_horizontal"
/>
</TableRow>
第一片段java代碼(這觸發連接至淨通過執行類FindSongTask,它從繼承的AsyncTask):
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button searchButton = (Button) findViewById(R.id.searchButton);
searchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText searchQueryField = (EditText) findViewById(R.id.searchQueryField);
String searchQuery = searchQueryField.getText().toString();
if (searchQuery.length() > 0 && (currentQuery == null || !currentQuery.equals(searchQuery))) {
new FindSongTask().execute(searchQuery);
currentQuery = searchQuery;
findViewById(R.id.progress_bar).setVisibility(View.VISIBLE);
v.setEnabled(false);
}
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(searchQueryField.getWindowToken(), 0);
}
});
}
第二片段(這之後執行連接到網絡):
instance.findViewById(R.id.searchButton).setEnabled(true);
findViewById(R.id.progress_bar).setVisibility(View.GONE);
super.onPostExecute(result);
請發佈與ProgressBar相關的代碼。 – Erol 2012-07-13 20:54:41
如果你能分享相關的代碼,這真的很有幫助。沒有看到代碼,我所能做的只是猜測。儘管如此,[This](http://www.example.com/)可能與您的查詢有關。 – Pulkit2692 2012-07-13 19:50:39