کلیدستان

نسخه‌ی کامل: ارتباط با php در سرویس (Service) (برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان
من می خوام توی سرویسی که با بسته شدن برنامه هم کار میکنه یک سری اطلاعات رو از فایل تکس بخونه و اون هارو ارسال کنه به یک صفحه php. وقتی این کار رو توی کلاس مرتبط با اکتیویتی انجام میدم مشکلی نداره ولی وقتی میبرمش توی سرویس بزنامه خارج میشه یا به اصطلاح فورس کلوز میده. کدها بصورت زیر هستن

کد پی‌اچ‌پی:
HashMap postPersonal = new HashMap();
postPersonal.put("txtPersonal"personal);
postPersonal.put("txtDate"GetDate);
postPersonal.put("txtMobile""mobile");
PostResponseAsyncTask taskDate = new PostResponseAsyncTask(LoginActivity.thispostPersonal, new AsyncResponse() {
@
Override
public void processFinish(String g) {
Log.i(LOGg);
Toast.makeText(getApplicationContext(), "باتشکر از انتخاب برنامه"Toast.LENGTH_SHORT).show();
}
});
taskDate.execute("url"); 

ممنون میشم بگید مشکل کار کجاست
سلام.
دقیق متوجه نشدم کدی که ذکر کردید، همان کدی هست که اگر آن را در سرویس به کار ببرید، خطا می دهد یا خیر. چون مثلا در کد، عبارت زیر را داریم :


کد پی‌اچ‌پی:
LoginActivity.this 

که تنها در Activity با نام LoginActivity به کار می رود.
اگر کد در سرویس به کار رفته، یکی نکته بالا بود (کلید شماره 2834 - کلید شماره 342) و همچنین نکته دیگری که به ذهن بنده رسید در مورد خط زیر از کدها است :

کد پی‌اچ‌پی:
Toast.makeText(getApplicationContext(), "باتشکر از انتخاب برنامه"Toast.LENGTH_SHORT).show(); 


روش Toast برای نمایش یک پیام کوتاه به کار می برد که یعنی UI (رابط گرافیکی) برنامه اندروید را تغییر می دهد. همان طور که می دانید، تنها Thread اصلی می تواند UI برنامه اندروید را تغییر بدهد، در صورتی که سرویس (Service) در یک Thread ای غیر از Thread اصلی اجرا می شود.
در این مورد، کلید زیر را بخوانید :

کلید شماره 2858

Flower
(۱۳۹۵/۰۶/۰۳, ۰۳:۲۹ ب.ظ)admin نوشته: [ -> ]سلام.
دقیق متوجه نشدم کدی که ذکر کردید، همان کدی هست که اگر آن را در سرویس به کار ببرید، خطا می دهد یا خیر. چون مثلا در کد، عبارت زیر را داریم :


کد پی‌اچ‌پی:
LoginActivity.this 

که تنها در Activity با نام LoginActivity به کار می رود.
اگر کد در سرویس به کار رفته، یکی نکته بالا بود (کلید شماره 2834 - کلید شماره 342) و همچنین نکته دیگری که به ذهن بنده رسید در مورد خط زیر از کدها است :

کد پی‌اچ‌پی:
Toast.makeText(getApplicationContext(), "باتشکر از انتخاب برنامه"Toast.LENGTH_SHORT).show(); 


روش Toast برای نمایش یک پیام کوتاه به کار می برد که یعنی UI (رابط گرافیکی) برنامه اندروید را تغییر می دهد. همان طور که می دانید، تنها Thread اصلی می تواند UI برنامه اندروید را تغییر بدهد، در صورتی که سرویس (Service) در یک Thread ای غیر از Thread اصلی اجرا می شود.
در این مورد، کلید زیر را بخوانید :

کلید شماره 2858

Flower

 ممنون از جوابتون.
ولی خطایی که میده روی خط زیر هستش
کد پی‌اچ‌پی:
taskDate.execute("url"); 

یعنی این خطا میده
سوالم رو بهتر بپرسم. برای اینکه درون سرویسی که حتی با بسته شدن برنامه اطلاعاتی را از اینترنت دریافت کند و در ناتیفیکیشن نمایش دهد. چکارهایی باید برای این عمل انجام بدم؟