我有一个指向另一页的按钮。每当我点击它时,我都会在logcat中获取此信息代码:
12-07 16:09:45.073: I/ActivityManager(273): Displayed com.example.prva/.button: +1s764ms
秒数和ms当然每次在1-3秒之间变化。问题是我注意到该按钮打开该页面需要一段时间。它有某种暂停或其他什么,这是我在logcat中找到的唯一可以连接到它的相关内容。我怎么能解决这个问题,为什么这个按钮表现“慢”?
这是按钮代码的位置:
package com.example.prva;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Meni_Splash extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnv = (Button) findViewById(R.id.buttonv);
btnv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(Meni_Splash.this, button.class));
}
});
}
}
这是打开的课程:
package com.example.prva;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
public class button extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.button);
//Button click sound
final MediaPlayer MPRadio1 = MediaPlayer.create(this, R.raw.radio1);
final MediaPlayer MPRadio2 = MediaPlayer.create(this, R.raw.radio2);
final MediaPlayer MPRadio3 = MediaPlayer.create(this, R.raw.radio3);
final RadioButton rb1, rb2, rb3;
rb1 = (RadioButton) findViewById(R.id.radio1);
rb2 = (RadioButton) findViewById(R.id.radio2);
rb3 = (RadioButton) findViewById(R.id.radio3);
Button btn = (Button) findViewById(R.id.buttonplay);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(rb1.isChecked())
{
MPRadio1.start();
}
else
{
if(rb2.isChecked())
{
MPRadio2.start();
}
else
{
if(rb3.isChecked())
{
MPRadio3.start();
}
}
}
}
}
);}}
我不知道这些活动会让它变得如此缓慢?
答案 0 :(得分:2)
说实话,你的代码看起来很不错。不确定是什么导致它慢慢地初始化。
但有两个方面需要考虑。
第一种,最有可能的是你的布局加载:
setContentView(R.layout.button);
我不认为你的布局很复杂。但是,如果它是,通常在页面上有许多嵌套视图(其他线性布局中的线性布局)或大量视图(文本视图等),那么可能需要一段时间来“膨胀”布局。
另外,不太可能的是,MediaPlayer.create需要花费很长时间才能加载。我建议这个的原因是,我不知道它是如何工作的,因为我之前没有使用它。
//Button click sound
final MediaPlayer MPRadio1 = MediaPlayer.create(this, R.raw.radio1);
final MediaPlayer MPRadio2 = MediaPlayer.create(this, R.raw.radio2);
final MediaPlayer MPRadio3 = MediaPlayer.create(this, R.raw.radio3);
最好的办法是使用DDMS分析器对其进行分析。或者在它周围放一个计时器,然后将结果打印到logcat。
另外,快速说明一下,加载只需2-3秒吗?它试图做的事情真的那么糟糕吗?