在执行AsyncTask

时间:2017-01-17 11:46:08

标签: android android-intent android-activity android-asynctask android-pendingintent

private class MyTask extends AsyncTask<String, Integer, Integer> {
    int number;
    private String content = null;
    private boolean error = false;
    Context mContext;
    int NOTIFICATION_ID = 1;
    Notification mNotification;
    NotificationManager mNotificationManager;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

    }

    @Override
    protected Boolean doInBackground(String... args) {

        return true;
    }

    @Override
    protected void onPostExecute(Integer result) {
        if (response) {

        //Build the notification using Notification.Builder
        Notification.Builder builder = new Notification.Builder(mContext)
                .setSmallIcon(R.mipmap.app_icon)
                .setAutoCancel(true)
                .setContentTitle(contentTitle)
                .setContentText(contentText);

        Intent intent = new Intent(mContext, CaptureActivity.class);
        intent.setAction(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);

        PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0,
                intent, 0);
        builder.setContentIntent(pendingIntent);

        //Get current notification
        mNotification = builder.getNotification();

        //Show the notification
        mNotificationManager.notify(NOTIFICATION_ID, mNotification);
    }
}

以上代码是我的asynctask的一部分。由于doinbackground的过程有点长,我希望 让用户转向或转移到另一个页面 ,这样他们就不必等待太久了坚持这项活动。当doinbackground开始 时,有没有办法 转移到另一个活动?而且如果它可以 在doinbackgound完成时弹出活动 ,那对我来说会很棒。非常感谢你。

1 个答案:

答案 0 :(得分:2)

在这种情况下,我建议使用ServiceIntentService代替AsyncTask - 如果doInBackground很长,用户可以转到其他活动,这可能会导致内存泄漏