Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to make my Android app update in time
    primarykey
    data
    text
    <blockquote> <p><strong>Possible Duplicate:</strong><br> <a href="https://stackoverflow.com/questions/4011482/how-to-make-android-app-update-in-execution-time">How to make Android app update in execution time</a> </p> </blockquote> <p>Im trying something in android, that has to get the words sent in sms and print on the emulator screen. But the app doesnt update in time. </p> <p>I send a message. Ok. But when I open the app it doesnt print the words that I've sent. So i have to close the emulator and then open it again, and run the app, and the word is there.</p> <p>Id like that when I sent the message and then I access the app, the word is printed without I have to close the emulator.</p> <p>How do I do this?</p> <p>Thx.</p> <hr> <p>So here is my code. Remember that I want to, send a new SMS and when I go to my app again, (without close and open the emulator), it updates the words in the screen, the new words shall be printed in the screen. Thx.</p> <p>I have this class <strong>SMS.java</strong>, which is my activity, and another class, that is below this one here, called <strong>DataHelper.java</strong>, which manipulate my database, and has the methods to insert, query, update, etc.:</p> <p><strong>SMS.java</strong></p> <pre><code>package com.sys; import java.util.List; import java.util.StringTokenizer; import com.sys.DataHelper; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.os.Bundle; import android.provider.BaseColumns; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.sys.ratedSmsContacts; public class SMS extends Activity { private DataHelper dh; private static TextView txtView; private static Button btnChkCntts; private static Button btnChkTag; final Uri CONTENT_URI = Uri.parse("content://sms/sent"); @Override public void onCreate(Bundle savedInstanceState) { this.dh = new DataHelper(this); super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button button = (Button) findViewById(R.id.btnChkCntts); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent myIntent = new Intent(v.getContext(), ratedSmsContacts.class); startActivityForResult(myIntent, 0); } }); txtView = (TextView)findViewById(R.id.txtView); Cursor cursor = getContentResolver().query(CONTENT_URI, null, null, null, null); String body; String atual; if(cursor.moveToFirst()){ body = cursor.getString(cursor.getColumnIndexOrThrow("body")).toString(); if(body == " "){ Toast.makeText(getBaseContext(), "There is no words to save!", Toast.LENGTH_LONG).show(); } else{ StringTokenizer st = new StringTokenizer(body); while(st.hasMoreTokens()){ atual = st.nextToken(); while(this.dh.select(atual) == true){ this.dh.atualiza(atual); Toast.makeText(getBaseContext(), "Word updated!", Toast.LENGTH_LONG).show(); } while(this.dh.select(atual) == false){ this.dh.insert(atual); Toast.makeText(getBaseContext(), "Word added!", Toast.LENGTH_LONG).show(); } } } List&lt;String&gt; words = this.dh.selectAll(); StringBuilder sb = new StringBuilder(); sb.append("Set of words:\n\n"); for (String w : words) { sb.append(w); sb.append(" "); } txtView.setText(sb.toString()); } } } </code></pre> <p><strong>DataHelper.java</strong></p> <pre><code>package com.sys; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteStatement; import android.util.Log; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class DataHelper { private static final String DATABASE_NAME = "sms.db"; private static final int DATABASE_VERSION = 1; private static final String TABLE_NAME = "words"; private Context context; private SQLiteDatabase db; private SQLiteStatement insertStmt; private SQLiteStatement updateStmt; private static final String INSERT = "insert into " + TABLE_NAME + "(word, cont) values (?, 1)"; public DataHelper(Context context) { this.context = context; OpenHelper openHelper = new OpenHelper(this.context); this.db = openHelper.getWritableDatabase(); //openHelper.onUpgrade(db, 1, 2); this.insertStmt = this.db.compileStatement(INSERT); } public long insert(String word) { this.insertStmt.bindString(1, word); return this.insertStmt.executeInsert(); } public void atualiza(String word){ this.db.execSQL("UPDATE words SET cont = cont + 1 WHERE (word= ?)", new String[] {word} ); } public void deleteAll() { this.db.delete(TABLE_NAME, null, null); } public boolean select(String wrd) { String word; Cursor cursor = this.db.query(TABLE_NAME, new String[] {"word"}, "word like ?", new String[] {wrd} , null, null, null); if (cursor.moveToFirst()) { do { word = cursor.getString(0); } while (cursor.moveToNext()); } if (cursor != null &amp;&amp; !cursor.isClosed()) { cursor.close(); return true; }else{ return false; } } public List&lt;String&gt; selectMaxCont(){ List&lt;String&gt; list = new ArrayList&lt;String&gt;(); Cursor cursor = this.db.query(TABLE_NAME, new String[]{"word"}, null, null, null, null, "cont desc"); if(cursor.moveToFirst()){ do{ list.add(cursor.getString(0)); }while(cursor.moveToNext()); } if(cursor != null &amp;&amp; !cursor.isClosed()){ cursor.close(); } return list; } public List&lt;String&gt; selectAll() { List&lt;String&gt; list = new ArrayList&lt;String&gt;(); Cursor cursor = this.db.query(TABLE_NAME, new String[] { "word" }, null, null, null, null, "cont desc"); if (cursor.moveToFirst()) { do { list.add(cursor.getString(0).toUpperCase()); } while (cursor.moveToNext()); } if (cursor != null &amp;&amp; !cursor.isClosed()) { cursor.close(); } return list; } private static class OpenHelper extends SQLiteOpenHelper { OpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, word TEXT, cont INTEGER)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w("SMS Words Database", "Upgrading database, this will drop tables and recreate."); db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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