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
android點選home鍵,再次點選程式圖示重新啟動程式
今天無意中在網上看到一個部落格,上邊記錄著一個問題,就是程式,點選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)巢