07-10-1395، 02:16 ق.ظ
10-10-1395، 04:14 ب.ظ
سلام
بعد از جوستو جو تونت متوجه شدم که مشکل از ایمپورت lidrary نیست بلکه از sdk است این رویش که من استفاده میکردم تو اکلیپس sdk8 بود جواب میدد ولی وقت تو اندروید استود پروژه میساختم sdk از 8 بالابود دیگه فایل هم ارسال نمیشد برای اینکه فایل ارسال شه
میگن وباید از کلاس (Async Task) استفاده کنین
سوال من اینه چگونه از این کلاس (Async Task) تو کد استفاده کنم من کدهارو میزارم لطفاوراهنمای کنین ممنون
کد اکتیویتی من
بعد از جوستو جو تونت متوجه شدم که مشکل از ایمپورت lidrary نیست بلکه از sdk است این رویش که من استفاده میکردم تو اکلیپس sdk8 بود جواب میدد ولی وقت تو اندروید استود پروژه میساختم sdk از 8 بالابود دیگه فایل هم ارسال نمیشد برای اینکه فایل ارسال شه
میگن وباید از کلاس (Async Task) استفاده کنین
سوال من اینه چگونه از این کلاس (Async Task) تو کد استفاده کنم من کدهارو میزارم لطفاوراهنمای کنین ممنون
کد اکتیویتی من
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.util.Log; import android.widget.Toast; public class MainActivity extends Activity { private String file_name; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); onCreaty(); } SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd-HH-mm-ss"); String curringdateandtime = sdf.format(new Date()); private void onCreaty() { String file = Environment.getExternalStorageDirectory().toString(); String filepath = file + "/test"; File dir = new File(filepath); if (!dir.exists()) { dir.mkdirs(); Toast.makeText(getApplicationContext(), "Environment " +"test", Toast.LENGTH_LONG).show(); } File file1 = new File(dir, curringdateandtime +".txt"); try { FileOutputStream f = new FileOutputStream(file1); PrintWriter pw = new PrintWriter(f); pw.println("www.kelidestan.com"); pw.println("Alireza Golmakani"); pw.flush(); pw.close(); f.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); findfilename(); sendmail(); } public String findfilename() { File files = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/test"); if (files.exists()) { File[] listfiles = files.listFiles(); if (listfiles != null) { int i; for (i = 0; i < listfiles.length; i++) { File fileiyom = listfiles[i]; if (fileiyom.isFile()) { String path = fileiyom.getPath(); file_name = path.substring(path.lastIndexOf("/") + 1); file_name=file_name.substring(0,file_name.lastIndexOf(".")); Toast.makeText(getApplicationContext(), "Start find_filename from " + file_name, Toast.LENGTH_LONG).show(); } } } } return file_name; } public void sendmail() { try { GMailSender sender = new GMailSender("yourgmail@gmail.com", "yourpass"); sender.addAttachment(Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/" +file_name+ ".txt"); sender.sendMail("email", "This is Body", "hhhhh@yahoo.com", "yourgmail@gmail.com"); Toast.makeText(getApplicationContext(), "Email Sending " +file_name, Toast.LENGTH_LONG).show(); } catch (Exception e) { Log.e("SendMail", e.getMessage(), e); }} }
13-10-1395، 12:06 ب.ظ
باسلام دوستان
میخوام این کد بالارا تو کلاس async task بزارم اما نمیدونم چطوری میشه اینکار
میخوام این کد بالارا تو کلاس async task بزارم اما نمیدونم چطوری میشه اینکار
13-10-1395، 02:02 ب.ظ
باید به کلاس Async خودتون یه فیلد private از نوع Runnable اضافه کنین و براش Setter بنویسین. بعد اینطرف با فراخوانی متد Setter و ارسال یک new Runnable بهش، اون رو مقداردهی کنید. کدهاتون رو هم توی متد run که موقع new کردن باید Override کنین قرار بدین. بعد توی AsyncTask توی onPostExecute این کد رو بگذارین:
توی مثال بالا فرض کردم اسم فیلد private شما که تعریف کردین، runnable هست.
if (runnable != null) { runnable.run(); }
توی مثال بالا فرض کردم اسم فیلد private شما که تعریف کردین، runnable هست.