メッセージを受信するとすぐに、受信者側でテキストビューを更新したいと考えています。主なアクティビティのインスタンスを作成し、それをブロードキャスト受信機で使用してUIを更新する次のコードがあります。しかし、テキストビューは更新されていませんか? smsreceiverクラスブロードキャストレシーバでTextViewを更新する
public class smsreceiver extends BroadcastReceiver
{
try{
if (MainActivity.getInst()!=null)
MainActivity.getInst().updateUI(str);
}
catch(Exception e){
e.printStackTrace();
}
}
で
public class Mainactivity extends activity{
private static MainActivity ins;
public static MainActivity getInst()
{
return ins;
}
protected void onCreate(Bundle savedInstanceState) {
ins=this;}
public void updateUI(final String s)
{
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
TextView textView=(TextView) findViewById(R.id.textView);
textView.setText(s);
}
});
}
私を助けてください!
はどこ 'setContentView()'と 'super.onCreate() 'は? – Opiatefuchs
固定されていますか? –
私のアプリにはいくつかの問題がありました。優先度の高いSMSアプリケーションがこのアプリでメッセージを受信できないようにしていました。このコードは、UIの更新に適しています。とにかくおかげでみんな – user3170131