Note that there are some explanatory texts on larger screens.

plurals
  1. POAlarm Manager Does Not Execute Repeatedly
    text
    copied!<p>I'm working on a group project for a class I'm taking and we cannot seem to figure out why our Alarm Manager does not fire intents repeatedly. We've picked through the source code from top to bottom and cannot seem to isolate the source of this issue. </p> <p>Can anyone recommend a fix? (or perhaps a starting point?)</p> <p>// Start service using AlarmManager</p> <pre><code> Calendar cal = Calendar.getInstance(); cal.add(Calendar.SECOND, 10); Intent intent = new Intent(Rules.this, LMW.class); PendingIntent pintent = PendingIntent.getService(Rules.this, 0, intent, 0); AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE); alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 7 * 1000, pintent); // Start 2nd service using AlarmManager Intent intent2 = new Intent(Rules.this, KillTimer.class); PendingIntent pintent2 = PendingIntent.getActivity(Rules.this, 0, intent2, 0); AlarmManager alarm2 = (AlarmManager) getSystemService(Context.ALARM_SERVICE); alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 120 * 1000, pintent2); // here </code></pre> <p>Source:</p> <pre><code>public class AlarmManager extends ListActivity { TextView empty; TextView empty2; private static final int ACTIVITY_CREATE = 0; private static final int ACTIVITY_EDIT = 1; public static final int INSERT_ID = Menu.FIRST; private static final int DELETE_ID = Menu.FIRST + 1; private List&lt;ParseObject&gt; todos; private Dialog progressDialog; private class RemoteDataTask extends AsyncTask&lt;Void, Void, Void&gt; { // Override this method to do custom remote calls public void setVisibility() { empty.setVisibility(View.VISIBLE); empty2.setVisibility(View.VISIBLE); } protected void doInBackground(Void... params) { // Gets the current list of todos in sorted order ParseQuery query = new ParseQuery("TestObject"); query.orderByDescending("_created_at"); try { todos = query.find(); } catch (ParseException e) { return; } runOnUiThread(new Runnable() { public void run() { }}); } @Override protected void onPreExecute() { ToDoListActivity.this.progressDialog = ProgressDialog.show(ToDoListActivity.this, "", "Loading...", true); super.onPreExecute(); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } @Override protected void onPostExecute(Void result) { // Put the list of todos into the list view ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(ToDoListActivity.this, R.layout.todo_row); for (ParseObject todo : todos) { adapter.add((String) todo.get("DataI")); adapter.add((String) todo.get("DataO")); adapter.add((String) todo.get("DataRSSI")); adapter.add((String) todo.get("DataSSID")); adapter.add((String) todo.get("DataTIME")); adapter.add((String) todo.get("DataRESTRICTED")); } setListAdapter(adapter); ToDoListActivity.this.progressDialog.dismiss(); } } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_new); empty = (TextView) findViewById(android.R.id.empty); empty.setVisibility(View.INVISIBLE); new RemoteDataTask().execute(); registerForContextMenu(getListView()); } private void createTodo() { Intent i = new Intent(this, CreateTodo.class); startActivityForResult(i, ACTIVITY_CREATE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (intent == null) { return; } final Bundle extras = intent.getExtras(); switch (requestCode) { case ACTIVITY_CREATE: new RemoteDataTask() { protected void doInBackground(Void... params) { String DataI = extras.getString("DataI"); String DataO = extras.getString("DataO"); String DataRSSI = extras.getString("DataRSSI"); String DataSSID = extras.getString("DataSSID"); String DataTIME = extras.getString("DataTIME"); String DataRESTRICTED = extras.getString("DataRESTRICTED"); ParseObject todo = new ParseObject("Todo"); todo.put("DataI", DataI); todo.put("DataO", DataO); todo.put("DataRSSI", DataRSSI); todo.put("DataSSID", DataSSID); todo.put("DataTIME", DataTIME); todo.put("DataRESTRICTED", DataRESTRICTED); try { todo.save(); } catch (ParseException e) { } super.doInBackground(); return; } }.execute(); break; case ACTIVITY_EDIT: // Edit the remote object final ParseObject todo; todo = todos.get(extras.getInt("position")); todo.put("DataI", extras.getString("DataI")); todo.put("DataO", extras.getString("DataO")); todo.put("DataRSSI", extras.getString("DataRSSI")); todo.put("DataSSID", extras.getString("DataSSID")); todo.put("DataTIME", extras.getString("DataTIME")); todo.put("DataRESTRICTED", extras.getString("DataRESTRICTED")); new RemoteDataTask() { protected void doInBackground(Void... params) { try { todo.save(); } catch (ParseException e) { } super.doInBackground(); return; } }.execute(); break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { boolean result = super.onCreateOptionsMenu(menu); menu.add(0, INSERT_ID, 0, R.string.menu_insert); return result; } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.add(0, DELETE_ID, 0, R.string.menu_delete); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case DELETE_ID: AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); // Delete the remote object final ParseObject todo = todos.get(info.position); new RemoteDataTask() { protected void doInBackground(Void... params) { try { todo.delete(); } catch (ParseException e) { } super.doInBackground(); return; } }.execute(); return true; } return super.onContextItemSelected(item); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case INSERT_ID: createTodo(); return true; } return super.onOptionsItemSelected(item); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Intent i = new Intent(this, CreateTodo.class); i.putExtra("DataI", todos.get(position).getString("DataI").toString()); i.putExtra("DataO", todos.get(position).getString("DataO").toString()); i.putExtra("DataRSSI", todos.get(position).getString("DataRSSI").toString()); i.putExtra("DataSSID", todos.get(position).getString("DataSSID").toString()); i.putExtra("DataTIME", todos.get(position).getString("DataTIME").toString()); i.putExtra("DataRESTRICTED", todos.get(position).getString("DataRESTRICTED").toString()); i.putExtra("position", position); startActivityForResult(i, ACTIVITY_EDIT); } } </code></pre> <p>Service Class </p> <pre><code>public class LMW extends Service { String Watchdog = "Watchdog"; String Dirty1 = "playboy"; String Dirty2 = "penthouse"; String Dirty3 = "pornhub"; String Dirty4 = "thepiratebay"; String Dirty5 = "vimeo"; String Dirty6 = "wired"; String Dirty7 = "limewire"; String Dirty8 = "whitehouse"; String Dirty9 = "hackaday"; String Dirty10 = "slashdot"; Long mStartRX = TrafficStats.getTotalRxBytes(); Long mStartTX = TrafficStats.getTotalTxBytes(); @Override public IBinder onBind(Intent arg0) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(getApplicationContext(), "Watchdog Running!", Toast.LENGTH_SHORT).show(); Long.toString(mStartTX); Long.toString(mStartRX); ParseObject testObject = new ParseObject("TestObject"); testObject.put("DataO", String.valueOf(mStartTX)); testObject.put("DataI", String.valueOf(mStartRX)); testObject.saveInBackground(); String[] projection = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }; Cursor cursor = getContentResolver().query(android.provider.Browser.BOOKMARKS_URI, projection, null, null, null); String urls = ""; if (cursor.moveToFirst()) { String url1 = null; String url2 = null; do { String url = cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.URL)); Log.i(Watchdog, url); if (url.toLowerCase().contains(Dirty1) || url.toLowerCase().contains(Dirty2) || url.toLowerCase().contains(Dirty3) || url.toLowerCase().contains(Dirty4) || url.toLowerCase().contains(Dirty5) || url.toLowerCase().contains(Dirty6) || url.toLowerCase().contains(Dirty7) || url.toLowerCase().contains(Dirty8) || url.toLowerCase().contains(Dirty9) || url.toLowerCase().contains(Dirty10)) { Intent intent2 = new Intent(LMW.this, Warning.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent2); break; } } while (cursor.moveToNext()); } return START_STICKY; } @Override public void onDestroy() { super.onDestroy(); Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show(); } @Override public void onCreate() { super.onCreate(); }} </code></pre> <p>Activity Class:</p> <pre><code>public class Timer extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.killtimer); Toast.makeText(getApplicationContext(), "KillWifi Running!", Toast.LENGTH_SHORT).show(); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); int networkId = wifiManager.getConnectionInfo().getNetworkId(); wifiManager.removeNetwork(networkId ); wifiManager.saveConfiguration(); }} </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload