1. 程式人生 > >Android 點選通知進入正在執行的程式

Android 點選通知進入正在執行的程式

好久沒寫文章,今天遇到一個新需求,app正在通話過程切換到後臺,點選通知欄的時候 回到通話介面。

直接上程式碼吧

首先是實現通知的程式碼

NotificationCompat.Builder notificationBuild =null;
    int NOTIFY_ID = 100;
    NotificationManager mNotificationManager;
    boolean isHasNotification = false;
    android.app.Notification notification;
    /**
     * 顯示通知欄
     */
public void showNotification(String title,String content){ if (mNotificationManager == null&&!isHasNotification){ Intent deleteIntent = new Intent(this, NotificationTipsReceiver.class); notificationBuild = new NotificationCompat.Builder(this); notificationBuild.setAutoCancel(false
);//設定能手動取消 notificationBuild.setOngoing(true);//設定不能取消 notificationBuild.setContentTitle(title); notificationBuild.setSmallIcon(R.mipmap.icon);//設定圖示 notificationBuild.setTicker("小尾巴 正在接單中"); notificationBuild.setDefaults(android.app.Notification.DEFAULT_ALL); notificationBuild.setPriority(android.app.Notification.PRIORITY_MAX); PendingIntent pendingIntent = PendingIntent.getBroadcast(this
, 0, deleteIntent, 0); notificationBuild.setContentIntent(pendingIntent); mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); } notification = notificationBuild.build(); mNotificationManager.notify(NOTIFY_ID, notification); isHasNotification = true; }

下面是通知點選處理類

public class NotificationTipsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        //判斷app程序是否存活
        boolean isApplive = SystemUtil.isAppAlive(context, "com.iol8.te.tr");
        Intent  dialogIntent = new Intent(context, DialogueActivity.class);
dialogIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED|Intent.FLAG_ACTIVITY_NEW_TASK);//注意這裡是關鍵  經過測試Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED也可以用Intent.FLAG_ACTIVITY_SINGLE_TOP  也可以做到   具體區別沒有去深入測試
        if (isApplive) {
            if (WYIMManager.isDialogue) {
                if (!SystemUtil.isAppRunningForeground(context)){//app在後臺執行
                    context.startActivity(dialogIntent);
                }
                return;
            }

        }
    }
}

另外附上一個Intent的flag 啟動介紹(感謝這位大神的分享)
Android Intent flag 介紹

相關推薦

Android 通知進入正在執行程式

好久沒寫文章,今天遇到一個新需求,app正在通話過程切換到後臺,點選通知欄的時候 回到通話介面。 直接上程式碼吧 首先是實現通知的程式碼 NotificationCompat.Builder notificationBuild =null;

Android切換前後臺,通知進入當前頁面

  在上一節講述了,本人使用的怎麼判斷App退到後臺的兩種方式,這裡主要講述當App退出到後臺的後,怎麼點選通知回到原來按下HOME鍵之前的前臺頁面.   首先,先展示效果,有圖才有真相   效果如

關於Android物理返回鍵退出程式的問題

在Android中,今天偶然發現了一個問題,以前在應用主介面經常寫的點選物理返回鍵後,在兩秒內再次點選退出程式程式碼如下: @Override     public boolean onKeyDown(int keyCode, KeyEvent event) {  

Android通知之通知欄通知後返回正在執行程式,而不是一個新Activity

一般的寫法,點選通知欄進入的Activity是一個新建立的Activity,而不是原先正在執行的Activity,這和我的想法是背道而馳的。當你點選返回按鍵退出這個Activity之後,發現,原先正在執行的Activity終於出現了。明顯這樣是不符合條理的。

android系統通知Notification,進入指定的activity

// 建立一個NotificationManager的引用 NotificationManager notificationManager = (NotificationManager) this.getSystemS

關於百度推送通知,跳轉的問題(Android

      今天在跟同事測試百度推送,之前一直困擾我的一個問題得到了有效解決,挺高興的,所以記錄一下,同時告誡自己,遇到問題,解決解決再解決,一定能夠解決的!      切入正題,百度推送的demo跟我們的app有些不一樣

選擇 Android studio “run” 按鈕 時執行的版本

Android studio 使用了多渠道打包,但是在連線手機進行除錯時,發現點選“run”按鈕,執行的不是你需要的預設版本,這時需要這樣操作: 點選Android studio 左下角位置的:“Build Variants”, 找到你的app專案,然後點選後面的,選擇你需要的版本

android極光推送的通知跳轉到webview頁面顯示網頁,webview返回錯誤程式碼-6,無法連線伺服器

這個bug比較坑,在webview中無法開啟,將地址複製到電腦瀏覽器中能正常開啟,網上搜索到的說無法連線伺服器是沒有加"http://",可我是加了的,我加了還是打不開。某法了,去看看IP地址,終於讓我找到問題了。 後臺伺服器我搭建的是本地的,請求地址也是後臺返回來的,結果

Android 通知欄訊息開啟activity,並判斷app是否執行

android的通知欄訊息點選事件如果是開啟一個activity時,我們要考慮兩種情況: 應用正在前臺執行。 應用已退出。 如果是第一種情況那麼就好處理了,直接為Intent設定flag為FLAG_ACTIVITY_NEW_TASK,然後呼叫context.

android 連續N次去執行某任務

利用陣列,不多說,直接程式碼 long[] counts= new long[5]; public void GoSystemSetting() { System.arraycopy(cou

Android開發實踐八:一個按鈕退出整個程式

# 參考資源 #https://blog.csdn.net/sinat_33921105/article/details/57096554main.java新增如下程式碼: public static

android關於每次圖示進入應用後都會重新建立啟動頁的問題

android關於每次點選圖示進入應用後都會重新建立啟動頁的問題 原創   2017年07月26日 11:49:21 標籤: android / 啟動模式 932

android 分享的連結跳轉到應用程式

我們時常會遇到這種需求,點選一個連結跳轉到我們的應用程式當中。 (點選一個連結跳轉到一個下載apk的html,這是沒有安裝這個apk的情況,如果安裝了可以直接跳轉到我們的apk應用當中) 如果需要帶入資料過去只需在連結的網址上加入引數即可例如: <a href="ht

android 快捷方式提示未安裝程式的解決

最近APP出現一個很奇怪的問題,在android 4.4.2和android 4.4.3系統上點選應用的快捷方式,打不開應用,而且會提示未安裝程式。 確認了應用的MainActivity中設定了android.intent.action.MAIN,添加了INSTALL_SH

Android 通知欄中的通知啟動應用

今天再做專案中遇到一個問題: "點選通知時, 應用不能啟動", 原始碼如下:  Context application = getApplicationContext(); Intent resultIntent = new Intent(application, Ma

androidhome鍵,再次程式圖示重新啟動程式

今天無意中在網上看到一個部落格,上邊記錄著一個問題,就是程式,點選home鍵,返回 桌面,然後再次點選圖示,結果程式重啟。 我當時覺得我的軟體應該沒這個問題吧,結果一試,竟然也有這樣的問題,就搜尋了一下,現在把解決方法記錄一下 分析原因:我將啟動的Activ

Android縮圖,放大至全圖

最近做一個專案類似於QQ空間,做到照片瀏覽的功能,對於QQ空間中點選圖片放大至全屏,感覺效果很贊,於是也做了個類似的效果。如下。 我不知道QQ那個是怎麼做的,我的思路如下: 首先,從圖片縮略介面跳轉到圖片詳情頁面,應該是從一個Activity跳轉到另外一個Activ

搜尋進入預編譯狀態,searbar跟隨導航消失

注意:如果出現下邊這種情況 Paste_Image.png 解決方式:在ViewDidLoad新增以下程式碼 - (void)viewDidLoad { #warning 如果進入預編輯狀態,searchBar消失

可能是最詳細的Android事件處理詳解(三)

前兩篇文章: 可能是最詳細的Android點選事件處理詳解 可能是最詳細的Android點選事件處理詳解(二) 這裡再次延伸一下,在ScrollView和RecyclerView巢狀中touch事件的傳遞過程,以及巢狀滑動衝突的問題。 如上圖,外層是一個Neste

可能是最詳細的Android事件處理詳解(二)

上一篇我們主要詳細描述了touch事件在各層的傳遞 本篇文章主要是對比touch在不可滾動和可滾動的ViewGroup事件的傳遞過程 如上圖: - 左圖:是ViewGroup巢狀View,不可滑動 - 右圖:也是ViewGroup(RecyclerView)巢