پژمان نیکروان 6,055 ارسال شده در 30 خرداد، 2016 اشتراک گذاری ارسال شده در 30 خرداد، 2016 بنام یگانه برنامه نویس عالم ، خداوند متعال سلام دوستان همونطور که قول داده بودم آموزشی رو تهیه میکنم برای انجام کاری مثل دادن اعلان و هرچیز دیگه ای در زمان مشخص ، ببخشید نشد که تصویریش رو آماده کنم. خب خیلییی دیدم تو تاپیک های مختلف که سوال میشه چطور میتونیم چیزی مثل باد صبا بسازیم یا چطور توی یک زمان مشخصی کاری رو انجام بدیم با سرویس ، آخرهم به نتیجه ی مطلوبی رسیده نشده بود فکر کنم. دوستان راهکار های مختلفی از جمله StartServiceAt یا استفاده از تایمر در سرویس دادن که شاید زیاد استاندارد نبوده. ما بصورت خیلی ساده با استفاده از برادکستی که خود اندروید در اختیار ما گذاشته میتونیم اینکارو انجام بدیم: android.intent.action.TIME_TICK اکشن بالا در برادکست رسیور هریک دقیقه یکبار دریافت میشه ، بطور ساده بگم این اکشن بصورت پیشفرض توسط خود سیستم عامل ، ساعت سیستم هریک دقیقه که جلومیره صدا زده میشه ، بخاطر همین استاندارد هستش و ضرری نمیرسونه از جمله مصرف باتری و... ما با استفاده از PNBroadcastReceiver فقط میایم این اکشن رو گوش میکنیم و در قبالش یک کاری رو انجام میدیم. در این آموزش و سورس از کتابخانه ی PNBroadcastReceiver استفاده شده که دوستانی که ندارنش میتونن از این تاپیک دریافت کنن. خب قبل از همه چیز قطعا یک سرویس میسازیم و اون سرویس رو باراه هایی که تو سایت گفته شده ماندگار میکنیم.(البته نگران نباشید داخل سورسی که پایین گذاشتم اینکارانجام شده) کتابخانه PNBroadcastReceiver رو تیک میزنیم و متغیر زیر: Sub Process_Globals Dim pn As PNBroadcastReceiver End Sub فعال سازی و گوش دادن به اکشن TIME_TICK: Sub Service_Create pn.Initialize("pn") pn.AddAction("android.intent.action.TIME_TICK") pn.RegisterReceiver End Sub و ایجاد رویداد زیر: Sub pn_OnReceive(Action As String,keys() As String,Data As Object) End Sub خب همونطور که گفته شد رویداد بالا هر یک دقیقه یکبار اجرا میشه یعنی درواقع برادکست دریافت میشه. فقط کافیه اونجا ساعت و تاریخ حال رو بگیریم و شرط بذاریم اگر مساوی با فلان بود بیاد مسیج بده: Sub pn_OnReceive(Action As String,keys() As String,Data As Object) Dim time,date As String time=Tabdil(DateTime.Time(DateTime.Now)) date=Tabdil(DateTime.Date(DateTime.Now)) If time="23:20:00" And date="03/30/2016" Then ToastMessageShow("دیرینگ دیرینگ... :D",True) End If End Sub و تابع زیر رو بین sub هاتون ایجاد کنید: Sub Tabdil(matn As String) As String Private res As String=matn res=res.Replace("۰","0") res=res.Replace("۱","1") res=res.Replace("۲","2") res=res.Replace("۳","3") res=res.Replace("۴","4") res=res.Replace("۵","5") res=res.Replace("۶","6") res=res.Replace("۷","7") res=res.Replace("۸","8") res=res.Replace("۹","9") Return res End Sub نکته: به این دلیل اعداد فارسی رو به انگلیسی تبدیل کردیم که بعضی گوشی ها که فارسی هستن ، زمانی که با DateTime میگیریم فارسی برگردونده میشه. به همین راحتی به همین خوشمزگی. و همچنین سورس یک ساعت زنگدار هم با همین روش آماده کردم که بیشتر باهاش آشنا بشید. کارش به این صورته که وارد برنامه میشید ازتون ساعت و تاریخ رو میخواد ، همچنین تاریخ و ساعت فعلی رو هم توی همون ادیت تکست ها نشون میده. بعد از ذخیره کردن ، توی همون زمان یک آهنگ پخش میشه و ناتیفیکیشن میاد که به محض کلیک روی ناتیفیکیشن ، زنگ قطع میشه. چیزایی مثل استارت اکتیویتی موقع زنگ خوردن ، انتخاب آهنگ و هرچیزی که یک ساعت زنگدار داره میمونه به عهده خودتون و این سورس فقط جنبه آموزشی داره! ساعت زنگدار امیدوارم راضی باشید و کارتونو راه بندازه. هر سوالی داشتید راجع به کدها یا جایی واستون مبهم بود بگید تا توضیح بدم ***مهم*** دوستان جایگزین آموزش بالا تاپیک زیر هست، بنابراین بهتره از کتابخانه زیر استفاده کنید، چون آموزش بالا رو میشه گفت تقریبا غیراستاندارد هست لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مجید آرتا 5,875 ارسال شده در 30 خرداد، 2016 اشتراک گذاری ارسال شده در 30 خرداد، 2016 خسته نباشی استاد نیکروان عزیز حال کردیم با این حرکتت لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
porya 959 ارسال شده در 30 خرداد، 2016 اشتراک گذاری ارسال شده در 30 خرداد، 2016 خسته نباشی واقعا عالی بود. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
cloner01001 38 ارسال شده در 30 خرداد، 2016 اشتراک گذاری ارسال شده در 30 خرداد، 2016 ممنون عالی بود ولی چند تا سوال : سوال اول : هدف من اینه با این سورس تو زمانی که کاربر مشخص میکنه بهش یه نوتیفیکیشن داده بشه یه ادیت تکست دارم واسه عنوان نوتیفی ، یه ادیت تکست واسه توضیحات نوتیفی ، یه انتخاب ساعت و یه انتخاب تاریخ (میخوام ساعت رو مثل قسمت ساعت هشدار گوشی نشون بده و کاربر انتخاب کنه ) حالا چطور چنین چیزیوتو این سورس پیاده کنم؟ سوال دومم : اینه میخوام یه چک باکس داشته باشم که اگه تیک خورد بیاد و "هر روز" تو همون ساعت و روزی که کاربر مشخص کرده بهش اون نوتیفیکیشن(که عنوان و توضیحش روهم کاربر مشخص کرده) رو نشون بده سوال سوم : چطور به کاربر امکان انتخاب چند اعلان رو بدیم؟ مثلا کاربر مراحل بالا رو انجام داد برنامه تو حافظش داشته باشه که تو فلان روز و ساعت اوننوتیفیکشن رو نشون بده ، حالا که کاربر رو باتون نوتیفی جدیدکلیک کرد بتونهیه اعلان جدید دیگه هم بسازه بدون اینکه قبلی بهم بریزه ممنون میشم جواب بدین لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمد رشوند 1,209 ارسال شده در 30 خرداد، 2016 اشتراک گذاری ارسال شده در 30 خرداد، 2016 @@cloner01001, همه این کار هایی که گفتید با سرویس و دیتابیس امکان پذیر هستش فقط خلاقیت باید داشته باشید و اگر چیزی رو بلد نبودید حتماً سرچ کنید امکان نداره به جواب نرسید چون کامل کامل در مورد دیتابیس و سرویس بحث شده اگر جایی از کار گیر کردی سوال کن لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 31 خرداد، 2016 سازنده اشتراک گذاری ارسال شده در 31 خرداد، 2016 ممنون عالی بود ولی چند تا سوال : سوال اول : هدف من اینه با این سورس تو زمانی که کاربر مشخص میکنه بهش یه نوتیفیکیشن داده بشه یه ادیت تکست دارم واسه عنوان نوتیفی ، یه ادیت تکست واسه توضیحات نوتیفی ، یه انتخاب ساعت و یه انتخاب تاریخ (میخوام ساعت رو مثل قسمت ساعت هشدار گوشی نشون بده و کاربر انتخاب کنه ) حالا چطور چنین چیزیوتو این سورس پیاده کنم؟ سوال دومم : اینه میخوام یه چک باکس داشته باشم که اگه تیک خورد بیاد و "هر روز" تو همون ساعت و روزی که کاربر مشخص کرده بهش اون نوتیفیکیشن(که عنوان و توضیحش روهم کاربر مشخص کرده) رو نشون بده سوال سوم : چطور به کاربر امکان انتخاب چند اعلان رو بدیم؟ مثلا کاربر مراحل بالا رو انجام داد برنامه تو حافظش داشته باشه که تو فلان روز و ساعت اوننوتیفیکشن رو نشون بده ، حالا که کاربر رو باتون نوتیفی جدیدکلیک کرد بتونهیه اعلان جدید دیگه هم بسازه بدون اینکه قبلی بهم بریزه ممنون میشم جواب بدین خواهش میکنم. همونطور که بالا هم گفتم: چیزایی مثل استارت اکتیویتی موقع زنگ خوردن ، انتخاب آهنگ و هرچیزی که یک ساعت زنگدار داره میمونه به عهده خودتون و این سورس فقط جنبه آموزشی داره! این سورس جنبه آموزشی داشت و وقت نکردم که این چیزایی که شما میفرمایید رو روش اعمال کنم. اما بقول آقا محمد با یکم تحقیق و خلاقیت میتونید راحت به نتیجه برسید. مثلا برای انتخاب ساعت مثل ساعت هشدار گوشی از دیالوگ ها استفاده کنید. یا در مورد اینکه یه تیک داشته باشه ، اگه اونو زد هرروز اعلان بده کافیه اصلا تاریخ رو مشخص نکنید و فقط شرط رو برای ساعت بذارید تا هرروز توی همون ساعت اعلان بده. و سوال سوم باز باید خودتون تلاش کنید ، چون چیزایی مثل کلیک روی ناتیفیکیشن ، پنل ، دیتابیس و... قبلا خیلی بحث شده ، با یکم تلاش حتما حل میشه. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Hamidbergis 332 ارسال شده در 31 خرداد، 2016 اشتراک گذاری ارسال شده در 31 خرداد، 2016 سپاس پژمان موفق باشی . . . لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
reza71 32 ارسال شده در 1 تیر، 2016 اشتراک گذاری ارسال شده در 1 تیر، 2016 اقا این وقتی برنامه بسته میشه عمل نمیکنه که چکار کنم؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mamalliii 214 ارسال شده در 1 تیر، 2016 اشتراک گذاری ارسال شده در 1 تیر، 2016 اقا این وقتی برنامه بسته میشه عمل نمیکنه که چکار کنم؟ 1-از سرویس باید استفاده کنی 2-سرویس رو همیشه فعال کن لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
reza71 32 ارسال شده در 1 تیر، 2016 اشتراک گذاری ارسال شده در 1 تیر، 2016 1-از سرویس باید استفاده کنی 2-سرویس رو همیشه فعال کن یعنی از ServiceStartAt استفاده کنیم? خوب اینکه مثل قبل میشه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 1 تیر، 2016 سازنده اشتراک گذاری ارسال شده در 1 تیر، 2016 یعنی از ServiceStartAt استفاده کنیم? خوب اینکه مثل قبل میشه نه عزیز روش های ماندگار موندن سرویس گفته شده قبلا. توی این نمونه سورس هم همینکار انجام شده. ServiceStartAt رو برای محکم کاری داخل Service_Start میذارن تا هرزگاهی سرویس رو استارت کنه برای اینکه بسته نشه. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mojcom 22 ارسال شده در 17 تیر، 2016 اشتراک گذاری ارسال شده در 17 تیر، 2016 نه عزیز روش های ماندگار موندن سرویس گفته شده قبلا. توی این نمونه سورس هم همینکار انجام شده. ServiceStartAt رو برای محکم کاری داخل Service_Start میذارن تا هرزگاهی سرویس رو استارت کنه برای اینکه بسته نشه.آقا لطف کن بگو اگه بخوایم چندتا زمان آقا لطف کن بگو اگه چند تا زمان بخوایم به برنامه بدیم باید چه جوری وارد فایل کرد و اونها رو با سرویس خوند که هر کدوم در زمان خودش نوتیفیکیشن بده؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 18 تیر، 2016 سازنده اشتراک گذاری ارسال شده در 18 تیر، 2016 آقا لطف کن بگو اگه چند تا زمان بخوایم به برنامه بدیم باید چه جوری وارد فایل کرد و اونها رو با سرویس خوند که هر کدوم در زمان خودش نوتیفیکیشن بده؟ این دیگه خلاقیت خودتونه ، مثلا میتونید زمان های مختلف رو ذخیره سازی کنید(همونطور که در سورس یک زمان ذخیره شد) و موقع اتفاق افتادن اون رویداد بیاید و فایل هارو بخونید و دونه دونه شرط بذارید اگه زمان مساوی ...... بود یه کاری انجام بشه. فقط کافیه یکمی تلاش کنید ، چون ذخیره سازی و دستورات شرطی رو دیگه فکر کنم بلد باشید یا قبلا بحث شده... لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mehrabmmp 528 ارسال شده در 22 تیر، 2016 اشتراک گذاری ارسال شده در 22 تیر، 2016 عالی لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
sajad325 76 ارسال شده در 22 تیر، 2016 اشتراک گذاری ارسال شده در 22 تیر، 2016 سلام خسته نباشید یعنی در این آموزش ما یاد میگیریم چطوری یاد آوری درست کنیم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
dr.mohammad 68 ارسال شده در 6 مرداد، 2016 اشتراک گذاری ارسال شده در 6 مرداد، 2016 سلام این برای من کار نمی کنه هر دیقه یکبار خود اندروید پیام میده متاسفانه برنامه متوقف شده است من چه کنم؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 6 مرداد، 2016 سازنده اشتراک گذاری ارسال شده در 6 مرداد، 2016 سلام این برای من کار نمی کنه هر دیقه یکبار خود اندروید پیام میده متاسفانه برنامه متوقف شده است من چه کنم؟ سلام دقیقا همین سورس رو اجرا کردین اینطوری شد؟؟ وقتی فورس کلوز میشه حتما خطایی هم توی لاگ چاپ میکنه ، گوشیتون متصل کنید به B4A و خطای لاگ رو اینجا قرار بدید. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
dr.mohammad 68 ارسال شده در 6 مرداد، 2016 اشتراک گذاری ارسال شده در 6 مرداد، 2016 راستش من نمیدونم خطای لاگ چیه کدهای مربوط به این هم دریکی از تاپیکام به نام برابر شد زمان قرار دادم برنامه شما کار می کنه ولی برنامه من مینویسه متاسفانه برنامه متوقفشده است لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 6 مرداد، 2016 سازنده اشتراک گذاری ارسال شده در 6 مرداد، 2016 راستش من نمیدونم خطای لاگ چیه کدهای مربوط به این هم دریکی از تاپیکام به نام برابر شد زمان قرار دادم برنامه شما کار می کنه ولی برنامه من مینویسه متاسفانه برنامه متوقفشده است خب عزیز شما جایی رو اشتباه کردین دیگه. توی همون تاپیک بررسی میکنم و جوابتونو میدم. البته دوستان هم جوابایی داده بودن. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
AMiN.M7892 1,029 ارسال شده در 28 مرداد، 2016 اشتراک گذاری ارسال شده در 28 مرداد، 2016 آقا دستت درد نکنه داشتم تو فروم میگشتم یهو این آموزش رو دیدم. به سرم زد یه ساعت زنگدار حرفه ای درست کنم. پروژه قبلی رو موقتا گذاشتم کنار تا این اپ رو بنویسم (خخخخخخخخخخخخخخخ ) خیلی ممنون. راستی یه لطفی کن بقیه BroadCast های دیفالت اندروید رو هم بزار تو همین تاپیک تا ببینم ایده دیگه ای به ذهنم میرسه یا نه؟! آقا لطف کن بگو اگه چند تا زمان بخوایم به برنامه بدیم باید چه جوری وارد فایل کرد و اونها رو با سرویس خوند که هر کدوم در زمان خودش نوتیفیکیشن بده؟ شما با دیتابیس و یه حلقه For میتونی اینکارو کنی( در واقع بنده دارم این کارو الان انجام میدم خخخخخخخ) البته با Map هم میشه ولی خب دیتابیس بهتره لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.