別のアクティビティのテキストビューからコンテンツを取得して、通知バー メッセージに表示しようとしています。動作しますが、正しくはありません。テキストビューからの文字列は通知に表示されます。他のアクティビティのテキストビューからの情報をバンドルし、通知マネージャーにバンドルを取得させることでそれを行っています。問題は、他のアクティビティが起動されたときに発生します。アクティビティのコードの最後のチャンクがバンドルと送信を行うため、通知が発生し、設定された起動時間を無視して通知が発生します。だから私の質問は、通知が別のアクティビティから文字列を取得するための最良かつ最も簡単な方法は何ですか? これが問題であるアクティビティです。それ自体で通知を発生させます。
import java.io.IOException;
import android.app.Activity;
import android.app.NotificationManager;
import android.content.Intent;
import android.database.SQLException;
import android.os.Bundle;
import android.widget.TextView;
public class DBTest2 extends Activity {
String scrNote;
TextView showBV;
NotificationManager nm;
DBAdapter dba;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dbtest_2);
showBV = (TextView) findViewById(R.id.getBK_TV);
nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//---cancel the notification---
try{
nm.cancel(getIntent().getExtras().getInt("uID"));
} catch (Exception e) {
System.out.println("Error when cancelling: "+e.toString());
}
//---END cancel the notification---
//---- SHOW IN NOTIFICATION------
scrNote = showBV.getText().toString();
Bundle moveScrNote = new Bundle();
moveScrNote.putString("mSN", scrNote);
Intent toNoteBody = new Intent(DBTest2.this, DisplayNotifications.class);
toNoteBody.putExtras(moveScrNote);
startActivity(toNoteBody);
//---- END SHOW IN NOTIFICATION------
}
}
通知マネージャーは次のとおりです。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//---get the notification ID for the notification;
// passed in by the MainActivity---
int uID = getIntent().getExtras().getInt("uniqueID");
//---PendingIntent to launch activity
Intent noteI = new Intent("com.vee.search01.DBTEST2");
noteI.putExtra("uniqueID", uID);
PendingIntent herroIntent =
PendingIntent.getActivity(this, 0, noteI, 0);
nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
long fireTime = System.currentTimeMillis();
String noteTitle = "Notification Title";
Bundle getNoteBody = getIntent().getExtras();
String gotNoteBody = getNoteBody.getString("mSN");
String noteBody = gotNoteBody;
Notification note = new Notification(R.drawable.noteicon, noteTitle, fireTime);
note.setLatestEventInfo(this, noteTitle, noteBody, herroIntent);
note.defaults |= Notification.DEFAULT_SOUND;
note.defaults |= Notification.FLAG_SHOW_LIGHTS;
nm.notify(uID, note);
finish();
}
}