Skip to content

Commit

Permalink
优化代码
Browse files Browse the repository at this point in the history
  • Loading branch information
xuexiangjys committed Sep 2, 2019
1 parent d992408 commit 11d327b
Show file tree
Hide file tree
Showing 10 changed files with 915 additions and 519 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

package com.xuexiang.pushdemo.fragment;

import com.xuexiang.keeplive.utils.IntentWrapper;
import com.xuexiang.keeplive.KeepLive;
import com.xuexiang.xpage.annotation.Page;
import com.xuexiang.xpage.base.XPageSimpleListFragment;

Expand Down Expand Up @@ -51,7 +51,7 @@ protected List<String> initSimpleData(List<String> lists) {
protected void onItemClick(int position) {
switch (position) {
case 0:
IntentWrapper.whiteListMatters(getActivity(), "推送服务");
KeepLive.gotoWhiteListActivity(this, "推送服务");
break;
case 1:

Expand Down
4 changes: 4 additions & 0 deletions keeplive/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

<application>
<receiver android:name=".receiver.NotificationClickReceiver" />
<activity
Expand Down
44 changes: 26 additions & 18 deletions keeplive/src/main/java/com/xuexiang/keeplive/KeepLive.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
package com.xuexiang.keeplive;

import android.app.ActivityManager;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;

import com.xuexiang.keeplive.config.ForegroundNotification;
import com.xuexiang.keeplive.config.KeepLiveService;
import com.xuexiang.keeplive.service.JobHandlerService;
import com.xuexiang.keeplive.service.LocalService;
import com.xuexiang.keeplive.service.RemoteService;
import com.xuexiang.keeplive.utils.ServiceUtils;
import com.xuexiang.keeplive.whitelist.IWhiteListCallback;
import com.xuexiang.keeplive.whitelist.WhiteList;
import com.xuexiang.keeplive.whitelist.WhiteListIntentWrapper;

import java.util.List;

Expand All @@ -37,6 +41,7 @@ public enum RunMode {
*/
ROGUE
}

public static Application sApplication;
public static ForegroundNotification sForegroundNotification = null;
public static KeepLiveService sKeepLiveService = null;
Expand All @@ -51,7 +56,7 @@ public enum RunMode {
* @param keepLiveService 保活业务
*/
public static void startWork(@NonNull Application application, @NonNull RunMode runMode, @NonNull ForegroundNotification foregroundNotification, @NonNull KeepLiveService keepLiveService) {
if (isMainProcess(application)) {
if (ServiceUtils.isMainProcess(application)) {
KeepLive.sApplication = application;
KeepLive.sForegroundNotification = foregroundNotification;
KeepLive.sKeepLiveService = keepLiveService;
Expand Down Expand Up @@ -92,20 +97,23 @@ public static void useSilenceMusice(boolean enable) {
KeepLive.sUseSilenceMusic = enable;
}

private static boolean isMainProcess(@NonNull Application application) {
int pid = android.os.Process.myPid();
String processName = "";
ActivityManager mActivityManager = (ActivityManager) application.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfos = mActivityManager.getRunningAppProcesses();
if (runningAppProcessInfos != null) {
for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager.getRunningAppProcesses()) {
if (appProcess.pid == pid) {
processName = appProcess.processName;
break;
}
}
return processName.equals(application.getPackageName());
}
return false;
//======================================白名单=============================================//

public static List<WhiteListIntentWrapper> gotoWhiteListActivity(final Fragment fragment, String target) {
return WhiteList.gotoWhiteListActivity(fragment, target);
}

public static List<WhiteListIntentWrapper> gotoWhiteListActivity(final Activity activity, String target) {
return WhiteList.gotoWhiteListActivity(activity, target);
}

/**
* 设置白名单意图跳转回调
*
* @param sIWhiteListCallback
*/
public static void setIWhiteListCallback(IWhiteListCallback sIWhiteListCallback) {
WhiteList.setIWhiteListCallback(sIWhiteListCallback);
}

}
Loading

0 comments on commit 11d327b

Please sign in to comment.