آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

اجرای اپلیکیشن  در ساعت مشخص شده

f-Dehghan  11 سال پیش  11 سال پیش
+2 0

چه طور میشه اپلیکیشن  در ساعتی مثل 8 صبح اتومات اجرا بشه؟

ویا اگر pouse شده در ساعت 8 صبح چه طور onresume بشه؟

اینجا زمان رو گرفتم و پایین گفتم اگر 8 بود کارتو انجام بده ولی در اون زمان اپلیکیشن  onresume نمیشه.

  public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
}
public void doItYourWork(){
.
.
}
protected void onResume() {
super.onResume();
if (today.format("%k:%M:%S") == "8:00:00") {
doItYourWork();
Log.i("LOG", "resume" + today.format("%k:%M:%S"));

return;
}
}
+2 0
لینک (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
f-Dehghan  11 سال پیش
0 0

 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Calendar calendar = Calendar.getInstance();
// 11:59 PM
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 0);
PendingIntent pi = PendingIntent.getBroadcast(TestActivity.this, 0, new Intent(TestActivity.this, MyClass.class), PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) TestActivity.this.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
}


public class MyClass extends BroadcastReceiver
{

@Override
public void onReceive(Context context, Intent intent)
{
startwork();
Log.i("LOG", "its resume");
}
}


public void startwork() {

//somecode
}

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

+1 0
فکر کنم کلاس broadcastRecevier را باید به عنوان یک Recevier در مانیفست معرفی کنی ... سرچ کن (11 سال پیش)
پاسخ به سوال 
f-Dehghan  11 سال پیش
+2 0

این طوری مشکل حل شد.ممنون از آقای حامد.
این کلاس رو نوشتم و در activity صداش کردم.

 public class Alarm {

Timer _timer;
Date alarmTime;


public Alarm() {

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 11);
calendar.set(Calendar.MINUTE, 45);
calendar.set(Calendar.SECOND, 00);

alarmTime = calendar.getTime();

_timer = new Timer();
_timer.schedule(new AlarmTask(), alarmTime);
}


class AlarmTask extends TimerTask {

/**
* Called on a background thread by Timer
*/
@Override
public void run() {

Log.i("LOG", "timerreset wall is " + alarmTime);
_timer.cancel();
}
}
}

0 0
حالا چطور از داخل این کلاس یک متد از توی اکتیویتی رو صدا کنم؟ منظورم داخل AlarmTask و درون public void run() هست؟ کلاس آلارم خارج از اکتیویتی است. (11 سال پیش)
0 0
اگر از منبع خواصی این کلاس را دریافت کردی خواهشا لینک منبع را بزار (11 سال پیش)
+1 0
اگر برنامتون یادآور یا موارد مشابه هست استفاده از Timer اصلا توصیه نمیشه، از AlarmManager استفاده کنید. لینک (11 سال پیش)
0 0
میخوام توی ساعت 12 نیمه شب والپیپر گوشی عوض بشه .با تایمر ساعت خاص رو بهش دادم .نمیشه از توی کلاس متد توی اکتیویتی رو صدا زد ؟کار غلطیه؟ (11 سال پیش)
+1 0
لینک رو ترجمه کنید متوجه میشید، فرض کنید میخوایید یه دکمه رو بعد چند ثانیه یا دقیقه غیر فعال کنید اونوقت استفاده از Timer توجیح پذیر هست، اجرا شدنش هم منوط به اجرای برنامتون هست. (11 سال پیش)
0 0
حرفتون درست بود .باید از AlarmManager استفاده کنم.این لینک رو ببینید. لینک MyAppReciever باید در کلاس خارج از اکتیویتی تعرف شود؟اگر این طوره چه طوری متدی که توی اکتیویتی هست توی این onReceive صدا کنم؟ (11 سال پیش)
+1 0
آموزش AlarmManager رو به نظر مشاهده نکردین، جزو آخرین آموزش هاست، فکر کنم جواب سوالتون رو اونجا پیدا کنید. (11 سال پیش)
0 0
ندیده بودم .ممنون.نگاه میکنم سوالی داشتم مزاحم میشم. (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .