0
我开发了这个应用程序,一切工作正常,但加载需要4-5秒,我不知道为什么,因为没有图像或互联网内容加载,只是logcat传播关于垃圾收集器的500条消息你能告诉我我做错了什么吗?下面是一些代码:Android应用程序 - 长时间加载
public class HNappActivity extends SherlockFragmentActivity implements
HeadlinesFragment.OnHeadlineSelectedListener, CABNavLis{
HeadlinesFragment hnHeadlinesFragment;
int hnCatIndex = 0;
int hnArtIndex = 0;
Categories hnCurrentCat;
public String[] Rubriky = null;
int count;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_hnapp);
Rubriky = ((HNapp) this.getApplication()).getRubriky();
count=((HNapp) this.getApplication()).getCount();
hnHeadlinesFragment = (HeadlinesFragment) getSupportFragmentManager().findFragmentById(
R.id.headlines);
hnHeadlinesFragment.setOnHeadlineSelectedListener(this);
hnCatIndex = savedInstanceState == null ? 0 : savedInstanceState.getInt("catIndex", 0);
hnHeadlinesFragment.setSelectable(true);
restoreSelection(savedInstanceState);
}
void restoreSelection(Bundle savedInstanceState) {
if (savedInstanceState != null) {
setNewsCategory(savedInstanceState.getInt("catIndex", 0));
int artIndex = savedInstanceState.getInt("artIndex", 0);
hnHeadlinesFragment.setSelection(artIndex);
OnHeadlineSelected(artIndex);
}
}
activity_hnapp.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/headlines"
android:name="sk.ecopress.hn.android.HeadlinesFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.03" />
<RelativeLayout
android:id="@+id/relative_layout1"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal" >
<Button
android:id="@+id/titulka"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="0dp"
android:layout_alignParentLeft="true"
android:text="@string/titulka" />
<Button
android:id="@+id/sekcie"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_toRightOf="@id/titulka"
android:text="@string/sekcie"
android:padding="0dp" />
<Button
android:id="@+id/bookmarks"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_toRightOf="@id/sekcie"
android:text="@string/bookmarks"
android:padding="0dp" />
<Button
android:id="@+id/info"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="0dp"
android:layout_alignParentRight="true"
android:onClick="info"
android:text="@string/info" />
<Button
android:id="@+id/nastavenia"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="0dp"
android:layout_toLeftOf="@id/info"
android:onClick="settings"
android:text="@string/nastavenia" />
感谢
除此之外,如果getRubriky方法正在执行一些繁重的加载操作,则应该将此调用移动到后台线程,而不是在UI线程上调用它,UI线程定义为唯一运行的线程。 – Darwind
它正在访问局部变量,可以从所有活动更改的变量。它只是字符串数组,最多12个元素。 –
@MilošLukačka在调试中一步一步地找到问题,我们无法猜测出什么问题,直到您深入了解问题的原因。 – Sean