我试图从通知发送信息到被调用的活动,而从我的活动我得到null.
通知代码是:
private void showNotification() {
Intent resultIntent = new Intent(this, MainActivity.class);
if (D)
Log.d(TAG, "Id: " + Id);
resultIntent.putExtra("ineedid", deviceId);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MeterActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
// Bundle tmp = resultIntent.getExtras();
// if (tmp == null) {
// Log.d(TAG, "tmp bundle is null");
// } else {
// long id = tmp.getLong("ineedid", -1);
// Log.d(TAG, "tmp id : " + id);
// }
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
BLEMessengerService.this)
.setSmallIcon(R.drawable.ic_action_search)
.setContentTitle("Event tracker")
.setContentText("Events received").setOngoing(true) …Run Code Online (Sandbox Code Playgroud) android bundle android-intent android-notifications android-pendingintent
我有这个代码:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setData(ContactsContract.Contacts.CONTENT_URI);
intent.putExtra(EXTRA_ONLINE_ID, (String) v.getTag());
startActivityForResult(intent, PICK_CONTACT);
Run Code Online (Sandbox Code Playgroud)
然后回复:
public void onActivityResult(int reqCode, int resultCode, Intent data) {
switch (reqCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
try {
Uri contactData = data.getData();
String onlineid = data.getStringExtra(EXTRA_ONLINE_ID);
} catch (Exception e) {
e.printStackTrace();
}
}
break;
}
super.onActivityResult(reqCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
的onlineid变量为空.我怎样才能传递一个值然后再接收它?
编辑
我甚至试过,
Bundle extras = data.getExtras(); // returns null
Run Code Online (Sandbox Code Playgroud) 我找不到一种方法将小部件的额外内容传递给Activity正确的.
我不想打开按钮点击活动,并传递一些额外内容.
Intent intent = new Intent(context, CreateOperationsActivity.class);
intent.putExtra("someKey", true);
PendingIntent pendingIntent = PendingIntent.getActivity(context, Constants.RequestCodes.CREATE_OPERATIONS, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.add_expense_button, pendingIntent);
Run Code Online (Sandbox Code Playgroud)
活动已打开,但没有额外的内容Intent.
我能够通过额外的唯一方法是设置PendingIntent标志,PendingIntent.FLAG_ONE_SHOT但随后widget按钮工作只是wince,点击它进一步不采取任何行动.
如何做到这一点,所以额外被拦截,Activity每次按钮工作?