Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何处理通知进度条上挂起的意图?_Android_Android Intent_Android Pendingintent_Android Popupwindow - Fatal编程技术网

Android 如何处理通知进度条上挂起的意图?

Android 如何处理通知进度条上挂起的意图?,android,android-intent,android-pendingintent,android-popupwindow,Android,Android Intent,Android Pendingintent,Android Popupwindow,在我的应用程序中,我正在将图像上载到服务器,其中有一个通知进度栏,用于显示上载进度。当用户单击通知时,将显示一个弹出窗口以取消或继续上载。所有这些都正常工作。当我单击“上一步”按钮时,以及当我处于上一活动时,如果我单击通知,弹出窗口将不会显示,而只是加载文件上载活动。我如何解决此问题??。当用户单击通知时,将传递一个挂起的意图,并且在onNewIntent方法中,我调用弹出窗口方法。当我在文件上载活动中时,此方法工作正常。我不知道是什么是实际问题。我认为挂起的意图是处理我onCreate方法中的

在我的应用程序中,我正在将图像上载到服务器,其中有一个通知进度栏,用于显示上载进度。当用户单击通知时,将显示一个弹出窗口以取消或继续上载。所有这些都正常工作。当我单击“上一步”按钮时,以及当我处于上一活动时,如果我单击通知,弹出窗口将不会显示,而只是加载文件上载活动。我如何解决此问题??。当用户单击通知时,将传递一个挂起的意图,并且在onNewIntent方法中,我调用弹出窗口方法。当我在文件上载活动中时,此方法工作正常。我不知道是什么是实际问题。我认为挂起的意图是处理我onCreate方法中的另一个意图,有人能帮忙吗

关于通知进度的未决意向

 public void ProgressBarNotification() {
            mBuilder = new NotificationCompat.Builder(ImageUploadActivity.this);
            mBuilder.setContentTitle("Upload")
                        .setContentText("Upload in progress")
                        .setSmallIcon(R.drawable.ic_launcher);

  mBuilder.setProgress(100, 0, false);

    mBuilder.setAutoCancel(true);
  Intent myIntent = new Intent(this, ImageUploadActivity.class);  //Pending Intent
  myIntent.putExtra("first_state",3);
  PendingIntent pendingIntent = PendingIntent.getActivity(ImageUploadActivity.this, 1, myIntent, PendingIntent. FLAG_UPDATE_CURRENT);

    mBuilder.setContentIntent(pendingIntent);
    mNotifyManager.notify(MY_NOTIFICATION_ID, mBuilder.build());
}
内隐法

 @Override
 protected void onNewIntent(Intent intent) {
   super.onNewIntent(intent);
    //new Intent(this, ImageUploadActivity.class);
   Bundle extras = intent.getExtras();
   state = extras.getInt("first_state");

      if(state==3)
  { 
   initiatePopupWindow();
   }}
初始化窗口方法

 public void initiatePopupWindow() {
    try {

        LayoutInflater inflater = (LayoutInflater) ImageUploadActivity.this
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.popupmenu,
                (ViewGroup) findViewById(R.id.popup_element));
        pwindo = new PopupWindow(layout, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, true);
        pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);
        pwindo.setFocusable(true);
        pwindo.setOutsideTouchable(true);
        Button btnStopUpload = (Button) layout.findViewById(R.id.btn_upload);
        btnStopUpload.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                mNotifyManager.cancel(MY_NOTIFICATION_ID);
                //  mTask.cancel(true);
                Log.e(TAG, "Notification Cancelled ");
                // mTask.cancel(true);
                Toast.makeText(getApplicationContext(),
                        "Upload Cancelled", Toast.LENGTH_SHORT).show();
                ImageUploadActivity.this.finish();
            }
        });


        Button btnCancelPopup = (Button) layout.findViewById(R.id.btn_cancel);

        btnCancelPopup.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                pwindo.dismiss();

            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private View.OnClickListener cancel_button_click_listener = new View.OnClickListener() {
    public void onClick(View v) {
        pwindo.dismiss();

    }
};

ImageUploadActivity
按back键时,它已从activity Backback中删除,因此当用户单击通知时,PendingEvent将创建一个新的activity实例。
OnneWinEvent()
始终会被调用
singleTop/Task
活动,但首次创建activity时除外。此时将调用
onCreate


ImageUploadActivity
onCreate()
中,您可以调用
onNewIntent(getIntent())
,在
onNewIntent()
中,检查
extras
是否不为空且包含
第一状态

是您的活动
单端
?是的。android:launchMode=“singleTop”好的,我调用了onNewIntent(getIntent());在我的onCreate方法中。但仍然是initiatePopupWindow();方法未执行,但newIntent上的Toast正在工作(有什么想法吗?)能否检查my initiatePopupWindow();方法您正在调用
pwindo.showas下拉列表
initiatePopupWindow
?您在哪里调用
pwindo
上的show方法?这是代码pwindo.showAtLocation(布局,重心,0,0);州是3?您的try-catch块中是否存在任何异常?