2017-02-11 1 views
1

上でfinish()を呼び出すと、最近のアプリケーションリストからアプリケーションを除外しています。バックグラウンドでサービスを実行していて、通知で通知を作成してユーザーが通知をクリックすると、 )。ユーザーがボタンを押しても、バックグラウンドサービスを実行したままにして、そのアクティビティを終了したいアクティビティ内でfinish()メソッドを呼び出していますが、完全に閉じるのではなく、アプリケーションが最近のアプリケーションリストに存在しています。アクティビティ

通知を作成するコードです。

Intent notificationIntent = new Intent(this, SurveyForm.class); 
    notificationIntent.setAction(Constants.SURVEY_ACTION); 

    PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 

    Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    Notification notification = new NotificationCompat.Builder(this) 
      .setContentTitle("Survey") 
      .setTicker("New Survey") 
      .setContentText("Please, answer the survey.") 
      .setSmallIcon(R.drawable.survey_notification_icon) 
      .setSound(alarmSound) 
      .setLights(0xff00ff00, 1000, 1000) 
      .setContentIntent(resultPendingIntent) 
      .setOngoing(true) 
      .build(); 
    notification.defaults = Notification.DEFAULT_VIBRATE; 

    mNotificationManager.notify(Constants.SURVEY_NOTIFICATION_ID, notification); 

とボタンのコードは以下の通りです:

bSave.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
      //Close the notification 
      nm.cancel(Constants.SURVEY_NOTIFICATION_ID); 

      //Close this Activity 
      finish(); 
     } 
    }); 

更新

私は、対応する活動のためのマニフェストファイルに次のプロパティを指定することによって、問題を解決しました。

アンドロイド:

+1

excludeFromRecents = "true" を、あなたは、 "最小化" とはどういう意味ですか? Androidには、アプリを「最小化する」という概念はありません。 – Karakuri

+1

@ Karakuri私はアプリケーションが隠されているが、最近のアプリのリストに表示されていることを最小限に抑えることによって、 – Enrique

+0

@Enrique、解決策を質問の回答として投稿し、それを受け入れてください。それはより良い方法で他の人を助け、またポイントを得ることになります。 –

答えて

2

excludeFromRecents =「true」の私には、対応する活動のためのマニフェストファイルにexcludeFromRecentsプロパティを指定することによって、問題を解決しました。

アンドロイド:

関連する問題