Запуск Android расширенной активности из уведомления - PullRequest
0 голосов
/ 24 июня 2018

Хочу начать активность MovieNotifActivity из уведомления но он не запускается и ничего не показывает

class MovieNotifActivity: MovieDetailActivity() {


@RequiresApi(Build.VERSION_CODES.O)
override fun onCreate(savedInstance: Bundle?){

        super.onCreate(savedInstance)
        Log.d("Salam","Test View ")
        val movie=intent.extras.get("movie") as Movie
        val intentNotif=MovieDetailActivity.createIntent(this,movie )
        addMovie(this,movie)

        val intent = MovieDetailActivity.createIntent(this, movie)
        val view = MovieFragment.newInstance(movie.getViewType())
        startNewActivityWithTransition(view.view!!, R.string.transition_movie_poster, intent)

}

}

это код MovieNotifActivity когда я пытаюсь запустить MovieDetailActivity из уведомления, он работает правильно, но когда я пытаюсь это ничего не работает я что-то пропустил здесь или забыл? спасибо за помощь

вот код, где я запускаю уведомление

 fun addMovie(context: Context, movie: Movie){
    val channelId = "channel-01"
    val channelName = "SIL Channel"
    val importance = NotificationManager.IMPORTANCE_HIGH


    val testIntent = Intent(context, MovieNotifActivity::class.java)

    testIntent.putExtra("movie",movie!!)
    val pNotifIntent1 = PendingIntent.getActivity(context, 0, testIntent, PendingIntent.FLAG_ONE_SHOT)

    // Icones
    val icon1 = Icon.createWithResource(context, android.R.drawable.star_big_off)




    val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager


    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        val mChannel = NotificationChannel(
                channelId, channelName, importance)
        notificationManager.createNotificationChannel(mChannel)
    }

    val noti = Notification.Builder(context, channelId)
            .setContentTitle(movie.title)
            .setContentText(movie.overview)
            .setSmallIcon(icon1)
            .setContentIntent(pNotifIntent1)
            .setAutoCancel(true)
            .build()

    notificationManager.notify(0, noti)

}

1 Ответ

0 голосов
/ 25 июня 2018

, используя этот способ для запуска активности из уведомления

    val notificationManager = context.getSystemService(
        Context.NOTIFICATION_SERVICE) as NotificationManager

    var resultIntent = Intent(this, ResultActivity.class);

    var stackBuilder = TaskStackBuilder.create(this)

    stackBuilder.addNextIntentWithParentStack(resultIntent);

    var resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
      val mChannel = NotificationChannel(
          channelId, channelName, importance)
      notificationManager.createNotificationChannel(mChannel)
    }

    val noti = Notification.Builder(context, channelId)
        .setContentTitle(movie.title)
        .setContentText(movie.overview)
        .setContentIntent(resultPendingIntent)
        .setSmallIcon(icon1)
        .setContentIntent(pNotifIntent1)
        .setAutoCancel(true)
        .build()

    notificationManager.notify(0, noti)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...