【问题标题】:Start activity is slow开始活动很慢
【发布时间】:2014-07-12 13:11:02
【问题描述】:

我正在在线编写一个音乐应用程序。但是我遇到了一个问题...当我在列表视图中选择一个项目时,一个新的活动开始缓慢... 不知道解决方法,请帮帮我! :( 对不起。我的英语说得很糟糕:(

这是我的代码:

public class startNewActivity extends AsyncTask<String, Void, String> {
    private Activity activity;
    private String selectDoc = "div.gen img";
    private String attr = "title";
    private String result;
    public String Quality;

    public startNewActivity(Activity activity) {
        this.activity = activity;
    }

    @Override
    protected String doInBackground(String... arg0) {
        nameSong = (String) lvSong.getItemAtPosition(positionId);
        link = linkSong.get(Integer.valueOf(obj.toString()));

        Quality = Utils.getQuality(link, selectDoc, attr, result);
        Log.i("Quality", Quality);
        changeLink = link.replace(".html", "_download.html").substring(15)
                .replaceFirst("", "http://download")
                .replace("nhac-hot", "mp3".concat("/vietnam/v-pop"));
        Log.i("Change link", changeLink);
        try {
          //Connect internet
            linkIntent = Utils.getLinkPlay(selectLinkPlay, changeLink,
                    afterChangeLink);
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(),
                    "Server has problem... Please while for minutes",
                    Toast.LENGTH_SHORT).show();
        }
        return linkIntent;
    }

    @Override
    protected void onPostExecute(String result) {
     //i'm want help here
        Intent i = new Intent(SongActivity.this, PlayMusicActivity.class);
        i.putExtra("song", linkIntent);
        i.putExtra("namesong", nameSong);
        i.putExtra("Quality", Quality);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        activity.startActivity(i);
        pDialog.dismiss();
        super.onPostExecute(result);
    }

    @Override
    protected void onPreExecute() {
        pDialog = ProgressDialog.show(SongActivity.this, "",
                "Please wait...");
    }
}

【问题讨论】:

  • 使用 Traceview 确定您的时间都花在了哪里。
  • 你在onClick上写了什么代码?请发帖
  • @CommonsWare 我是新手 :(。但是点击大约 3-4 秒时活动开始

标签: android android-activity android-asynctask


【解决方案1】:

您将在 onPostExecute() 中启动新活动,该活动仅在您完成 doInBackground() 后执行。因此,时间延迟。

理想情况下,您应该在执行 AsyncTask 后立即启动活动。当您的活动发生变化时,AsyncTask 将在后台继续。

【讨论】:

  • 首先...谢谢您回答我的问题...我将编辑我的代码
  • Now.I'm start PlayMusicActivity and Process it before Play
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
相关资源
最近更新 更多