djsaeedkhan

مشکل کار نکردن alarm-manager

2 ارسال در این موضوع قرار دارد

سلام. وقت بخیر.
من یه برنامه اندروید درست کردم و داخلش با alarm-manager قرار دادم که یه کاری هر مثلا1 ساعت یکبار انجام بشه. الان درست کار میکنه و حتی اگر موبایل روشن خاموش بشه بازم کار میکنه.
ولی اگر کاربر برنامه هایی که حافظه رم رو پاک میکنن(برنامه های غیرضروری یا باز) مثلا (Clean Master- Space Cleaner & Antivirus) یا اگر از تنظیمات رم گزینه پاک کردن، اجرا کنه  alarm-manager دیگه کار نمیکنه و تا برنامه دوباره باز نشه شروع به کار نمیشه.
راهی هست که بشه این مشکل رو حل کرد باسپاس
 

Intent alarmIntent = new Intent(getActivity(), ReceiverUpdateData.class);
AlarmManager manager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
	Integer.parseInt(newValue.toString())*60*1000,
	PendingIntent.getBroadcast(getActivity(), 0, alarmIntent, 0));

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1396/09/23, 21:09:17، djsaeedkhan گفته است :

سلام. وقت بخیر.
من یه برنامه اندروید درست کردم و داخلش با alarm-manager قرار دادم که یه کاری هر مثلا1 ساعت یکبار انجام بشه. الان درست کار میکنه و حتی اگر موبایل روشن خاموش بشه بازم کار میکنه.
ولی اگر کاربر برنامه هایی که حافظه رم رو پاک میکنن(برنامه های غیرضروری یا باز) مثلا (Clean Master- Space Cleaner & Antivirus) یا اگر از تنظیمات رم گزینه پاک کردن، اجرا کنه  alarm-manager دیگه کار نمیکنه و تا برنامه دوباره باز نشه شروع به کار نمیشه.
راهی هست که بشه این مشکل رو حل کرد باسپاس
 


Intent alarmIntent = new Intent(getActivity(), ReceiverUpdateData.class);
AlarmManager manager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
	Integer.parseInt(newValue.toString())*60*1000,
	PendingIntent.getBroadcast(getActivity(), 0, alarmIntent, 0));

 

سلام

میتونید در کلاس service از onTaskRemove استفاده کنید که در واقع باید override بشه:

@Override
public void onTaskRemoved(Intent rootIntent){
  
  Intent alarmIntent = new Intent(getActivity(), ReceiverUpdateData.class);
  AlarmManager manager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
  manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
  Integer.parseInt(newValue.toString())*60*1000,
  PendingIntent.getBroadcast(getActivity(), 0, alarmIntent, 0));
  
  super.onTaskRemoved(rootIntent); 
}

 

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط مهندس
      سلام دوستان
      من یک چند مدتیه که هر چی کتابخانه به پروژه ام اضافه میکنم در بخش دیپندنسی ، همیشه با پیغام زیر مواجه میشم، فرقی هم نداره برای همه ی کتابخانه ها این اتفاق میقته.
      ضمن اینکه سرعت اینترنتم بسیار عالی هست.
      پراکسی رو هم امتحان کردم؛ از قندشکن هم استفاده کردم ولی فایده ای نداره.
      در صورتیکه من قبلا به همین پروژه براحتی کتابخونه ادد میکردم.
      دوستان خواهش میکنم کمک کنید، چجوری از دست این خطا راحت بشم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

    • توسط مهندس
      سلام.
      من فایل های php ارتباط با سرورمو اپلود کردم در فایل public html و داخل برنامه هم ک url ست کردم برای ارتباط با سرور.
      الان یک مشکلی ک دارم بحث امنیته.
      مثلا ما تو وب سایت بحث کوکی ها و سشن ها رو داریم. 
      تو اندروید برای امنیت باید چیکار کنیم؟؟
      در ضمن مثلا فرض کنید url من https://www.android.com/app/register.php .
      حالا شما فرض کنید یه هکر براحتی میتونه ب این صفحه دسترسی پیدا کنه دیتا اینرزت کنه در دیتابیس.
      یا کلا در این ادرس https://www.android.com/app/ ب تمام فایل ها میتونه دسترسی پیدا کنه.

       
    • توسط niloobani
      سلام .به یک توسعه دهنده اپلیکیشن مسلط به ساخت اپلیکیشن برای اندروید و ios در یک شرکت معتبر نیاز دارم . لطفا در صورت داشتن شرایط به من پیام بدید
    • توسط snowman
      سلام
      یه برنامه کتاب الکترونیکی نوشتم که همه چیش درست کار میکنه فقط تو قسمت جستجوش گیر کردم. تو برنامه از sqlite برای دیتابیس استفاده کردم که شامل یه table هست .برنامه 4 قسمت داره که واسه هر قسمت یه اکتیویتی ساختم که با استفاده از لیست ویو اطلاعاتو نشون میده . تو قسمت جستجو نمیتونم آیتم رو به اکتیویتی مورد نظر پاس بدم .نمیدونم اصلا امکانش هست یا نه راستش این اولین برنامم هستش ممنون میشم راهنماییم کنیید.
      import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.EditText; import android.widget.ListView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.SimpleAdapter; import android.widget.Toast; import java.util.HashMap; import java.util.List; import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper; public class search extends AppCompatActivity { private DatabaseHandler db; private ListView resultListView; private List<HashMap<String , Object>> resultBooks; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search); getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); resultListView = (ListView) findViewById(R.id.resultListView); db = new DatabaseHandler( getBaseContext() ); db.open(); if( db.getScreenState() == 1 ) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } db.close(); } public void onBtnFindClick( View v ) { resultListView.setAdapter(null); RadioGroup rGroup = (RadioGroup) findViewById(R.id.rgItems); int selected_item_id = rGroup.getCheckedRadioButtonId(); RadioButton rbTitle = (RadioButton) findViewById(R.id.rbSearchByTitle); RadioButton rbContent = (RadioButton) findViewById(R.id.rbSearchByContent); String search_by = ""; if( selected_item_id == rbTitle.getId() ) { search_by = "title"; } else if( selected_item_id == rbContent.getId() ) { search_by = "content"; } EditText etSearchKey = (EditText) findViewById(R.id.txtSearchKey); if( etSearchKey.getText().length() < 1 ) { Toast.makeText( getBaseContext() , getString(R.string.search_error_enter_text) , Toast.LENGTH_SHORT ).show(); return; } String key = etSearchKey.getText().toString().trim(); String[] keys = key.split("\\s+"); String query = search_by + " LIKE '%" + keys[0] + "%'"; StringBuilder sb = new StringBuilder(); for( int i = 1; i < keys.length; i ++ ) { sb.append( " OR " + search_by + " LIKE '%" + keys[i] + "%'" ); } query = query + sb.toString(); /* title LIKE '%ali%' OR title LIKE '%reza%' OR ... */ showResultOfSearch(query); } public void showResultOfSearch(final String query ) { db.open(); resultBooks = db.getTableOfResultsOfSearch( query ); db.close(); if( resultBooks.size() < 1 ) { Toast.makeText( getBaseContext() , getString(R.string.search_error_not_found) , Toast.LENGTH_SHORT ).show(); return ; } String[] from = { "title" , "fav_flag" , "see_flag" }; int[] to = { R.id.txtTitle , R.id.setFav , R.id.setSee }; SimpleAdapter adb = new SimpleAdapter( getBaseContext() , resultBooks , R.layout.tbl_content_list_row , from , to ); resultListView.setAdapter(adb); resultListView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent i = new Intent(getBaseContext(), book_content4.class); String my_id = resultBooks.get(position).get("id").toString(); i.putExtra("id", my_id); startActivity(i); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); } } ); } protected void attachBaseContext(Context newBase) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); } }  
    • توسط مهندس
      سلام.
      دوستان من اپلیکیشنم رو در هیچ مارکتی نذاشتم.
      هم اکنون میخام پیغام اپدیت بفرستم برای کاربرا و اگر کاربر روی دکمه اوکی لمس کرد، نسخه جدید براش دانلود بشه و خودکار نصب بشه.
      من سمت سرور با php کار میکنم.
      چطور میتونم اپ رو در سرور اپلود کنم و چطور میتونم کاربرو هدایت کنم ک دانلود کنه؟؟

  • دوره آموزشی اندروید ایران کانادا آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل