Я пытаюсь отобразить Toast
, когда я вызываю класс AsyncTask
с new saveWithStickers(BaseActivity.this).execute();
, чтобы уведомить пользователя о том, что процесс сохранения запускается, когда я запускаю код ниже метода onPreExecute()
для некоторого логического причина не называется, поэтому тост также не появляется, является ли runOnUiThread
причиной такого поведения?
@SuppressLint("StaticFieldLeak")
public class saveWithStickers extends AsyncTask<Void, File, File> {
File fileSaved;
Context mContext;
saveWithStickers(Context context) {
mContext = context;
}
@Override
protected File doInBackground(Void... voids) {
fileSaved = FileUtil.getNewFile(BaseActivity.this, "VAPOGRAM");
if (fileSaved != null)
runOnUiThread(() -> {
stickerView.save(fileSaved, true);
});
return fileSaved;
}
@SuppressLint("SetTextI18n")
@Override
protected void onPreExecute() {
super.onPreExecute();
content.setVisibility(View.GONE);
Toast.makeText(mContext, "saving ...", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPostExecute(File file) {
super.onPostExecute(file);
}
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckPermissionUtil checkPermissionUtil = new CheckPermissionUtil(BaseActivity.this);
if (Build.VERSION.SDK_INT >= 23) {
if (checkPermissionUtil.checkPermission(1812)) {
new saveWithStickers(BaseActivity.this).execute();
} else
checkPermissionUtil.requestPermission(1812);
} else {
new saveWithStickers(BaseActivity.this).execute();
}
}
});