相关疑难解决方法(0)

Android Notification PendingIntent Extras null

我试图从通知发送信息到被调用的活动,而从我的活动我得到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

36
推荐指数
4
解决办法
2万
查看次数

startActivityForResult和Intents Extras,似乎额外的东西不会被推回

我有这个代码:

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)

android extras android-intent

17
推荐指数
1
解决办法
9125
查看次数

将PendingIntent中的小部件的附加内容传递给Activity

我找不到一种方法将小部件的额外内容传递给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每次按钮工作?

android android-widget android-intent

5
推荐指数
1
解决办法
1096
查看次数