diff --git a/appbase/build.properties b/appbase/build.properties
index 4469af4..6dae496 100644
--- a/appbase/build.properties
+++ b/appbase/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Thu Mar 27 10:59:31 GMT 2025
+#Fri Mar 28 05:17:15 GMT 2025
stageCount=1
libraryProject=libappbase
baseVersion=15.1
publishVersion=15.1.0
-buildCount=130
+buildCount=143
baseBetaVersion=15.1.1
diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java
index bb5fd9b..2aa8dbe 100644
--- a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java
+++ b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java
@@ -1,12 +1,11 @@
package cc.winboll.studio.appbase;
import android.app.Activity;
-import android.app.ActivityOptions;
import android.content.ComponentName;
import android.content.Intent;
-import android.graphics.Rect;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -16,15 +15,14 @@ import cc.winboll.studio.appbase.activities.NewActivity;
import cc.winboll.studio.appbase.services.MainService;
import cc.winboll.studio.appbase.services.TestDemoBindService;
import cc.winboll.studio.appbase.services.TestDemoService;
+import cc.winboll.studio.libappbase.CrashHandler;
import cc.winboll.studio.libappbase.GlobalApplication;
+import cc.winboll.studio.libappbase.GlobalCrashActivity;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.sos.SOS;
import cc.winboll.studio.libappbase.utils.ToastUtils;
import cc.winboll.studio.libappbase.widgets.StatusWidget;
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
-import cc.winboll.studio.libappbase.winboll.LogActivity;
-import cc.winboll.studio.libappbase.winboll.WinBollActivityManager;
-import android.support.v7.widget.Toolbar;
public class MainActivity extends AppCompatActivity implements IWinBollActivity {
@@ -72,7 +70,7 @@ public class MainActivity extends AppCompatActivity implements IWinBollActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
- WinBollActivityManager.getInstance(this).startLogActivity(this);
+ GlobalApplication.getWinBollActivityManager().startLogActivity(this);
return true;
} else if(item.getItemId() == cc.winboll.studio.appbase.R.id.item_minimal) {
moveTaskToBack(true);
@@ -95,6 +93,12 @@ public class MainActivity extends AppCompatActivity implements IWinBollActivity
boolean isDebuging = ((CheckBox)view).isChecked();
GlobalApplication.setIsDebuging(isDebuging);
}
+
+ public void onPreviewGlobalCrashActivity(View view) {
+ Intent intent = new Intent(this, GlobalCrashActivity.class);
+ intent.putExtra(CrashHandler.EXTRA_CRASH_INFO, "Demo log...");
+ startActivity(intent);
+ }
public void onStartCenter(View view) {
MainService.startMainService(this);
@@ -176,7 +180,7 @@ public class MainActivity extends AppCompatActivity implements IWinBollActivity
}
public void onTestOpenNewActivity(View view) {
- WinBollActivityManager.getInstance(this).startWinBollActivity(this, NewActivity.class);
+ GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, NewActivity.class);
}
diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java b/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java
index b7adf3e..c6f01fa 100644
--- a/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java
+++ b/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java
@@ -13,6 +13,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import cc.winboll.studio.appbase.R;
+import cc.winboll.studio.libappbase.GlobalApplication;
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
import cc.winboll.studio.libappbase.winboll.WinBollActivityManager;
@@ -52,15 +53,15 @@ public class New2Activity extends AppCompatActivity implements IWinBollActivity
}
public void onCloseThisActivity(View view) {
- WinBollActivityManager.getInstance(this).finish(this);
+ GlobalApplication.getWinBollActivityManager().finish(this);
}
public void onCloseAllActivity(View view) {
- WinBollActivityManager.getInstance(this).finishAll();
+ GlobalApplication.getWinBollActivityManager().finishAll();
}
public void onNewActivity(View view) {
- WinBollActivityManager.getInstance(this).startWinBollActivity(this, NewActivity.class);
+ GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, NewActivity.class);
}
@@ -74,7 +75,7 @@ public class New2Activity extends AppCompatActivity implements IWinBollActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
- WinBollActivityManager.getInstance(this).startLogActivity(this);
+ GlobalApplication.getWinBollActivityManager().startLogActivity(this);
return true;
} else if(item.getItemId() == cc.winboll.studio.appbase.R.id.item_minimal) {
moveTaskToBack(true);
diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java
index f9059cf..a2e71ba 100644
--- a/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java
+++ b/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java
@@ -12,6 +12,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import cc.winboll.studio.appbase.R;
+import cc.winboll.studio.libappbase.GlobalApplication;
import cc.winboll.studio.libappbase.winboll.IWinBollActivity;
import cc.winboll.studio.libappbase.winboll.WinBollActivityManager;
@@ -50,15 +51,15 @@ public class NewActivity extends AppCompatActivity implements IWinBollActivity {
}
public void onCloseThisActivity(View view) {
- WinBollActivityManager.getInstance(this).finish(this);
+ GlobalApplication.getWinBollActivityManager().finish(this);
}
public void onCloseAllActivity(View view) {
- WinBollActivityManager.getInstance(this).finishAll();
+ GlobalApplication.getWinBollActivityManager().finishAll();
}
public void onNew2Activity(View view) {
- WinBollActivityManager.getInstance(this).startWinBollActivity(this, New2Activity.class);
+ GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, New2Activity.class);
}
@@ -72,7 +73,7 @@ public class NewActivity extends AppCompatActivity implements IWinBollActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) {
- WinBollActivityManager.getInstance(this).startLogActivity(this);
+ GlobalApplication.getWinBollActivityManager().startLogActivity(this);
return true;
} else if(item.getItemId() == cc.winboll.studio.appbase.R.id.item_minimal) {
moveTaskToBack(true);
diff --git a/appbase/src/main/res/layout/activity_main.xml b/appbase/src/main/res/layout/activity_main.xml
index b86b6d4..2f64b56 100644
--- a/appbase/src/main/res/layout/activity_main.xml
+++ b/appbase/src/main/res/layout/activity_main.xml
@@ -39,28 +39,40 @@
android:layout_height="wrap_content"
android:text="Android版本10的代号是“Q”,API级别是29。 Android 10开始谷歌不再公开使用甜品作为版本代号,但内部仍保留了大量与“Q”相关的元素。Android 10本身并没有严格对应某个特定的Java版本,但在开发Android 10应用时,通常可以使用Java 8或更高版本。 Java 8为Android开发带来了诸如Lambda表达式、方法引用等新特性,能提高开发效率和代码可读性,与Android 10开发适配良好。Java 9及更高版本也可用于Android 10开发,能使用一些新的语言特性和API,但可能需要注意兼容性和配置问题。"/>
-
+ android:layout_height="wrap_content">
-
+ android:gravity="right|center_vertical"
+ android:layout_width="wrap_content">
-
+
-
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
-
-
-
@@ -160,7 +173,6 @@
-
-
-
-
+
+
+
@@ -198,6 +210,6 @@
-
+
diff --git a/libappbase/build.properties b/libappbase/build.properties
index 4469af4..6dae496 100644
--- a/libappbase/build.properties
+++ b/libappbase/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Thu Mar 27 10:59:31 GMT 2025
+#Fri Mar 28 05:17:15 GMT 2025
stageCount=1
libraryProject=libappbase
baseVersion=15.1
publishVersion=15.1.0
-buildCount=130
+buildCount=143
baseBetaVersion=15.1.1
diff --git a/libappbase/src/main/AndroidManifest.xml b/libappbase/src/main/AndroidManifest.xml
index 3e1fb2d..535f497 100644
--- a/libappbase/src/main/AndroidManifest.xml
+++ b/libappbase/src/main/AndroidManifest.xml
@@ -14,7 +14,8 @@
+ android:launchMode="singleInstance"
+ android:process=":CrashActivity"/>
_mapIWinBollList;
- static volatile IWinBollActivity firstIWinBollActivity;
+ volatile IWinBollActivity mFirstIWinBollActivity;
- public WinBollActivityManager(Context context) {
- mContext = context;
- LogUtils.d(TAG, "WinBollActivityManager()");
+ WinBollActivityManager(GlobalApplication application) {
+ mGlobalApplication = application;
_mapIWinBollList = new HashMap();
}
- public static synchronized WinBollActivityManager getInstance(Context context) {
+ public static synchronized WinBollActivityManager getInstance(GlobalApplication application) {
LogUtils.d(TAG, "getInstance");
- if (_mWinBollActivityManager == null) {
- LogUtils.d(TAG, "_mWinBollActivityManager == null");
- _mWinBollActivityManager = new WinBollActivityManager(context);
+ if (_Instance == null) {
+ LogUtils.d(TAG, "_Instance == null");
+ _Instance = new WinBollActivityManager(application);
}
- return _mWinBollActivityManager;
+ return _Instance;
}
//
@@ -73,11 +72,12 @@ public class WinBollActivityManager {
String tag = ((IWinBollActivity)iWinBoll).getTag();
LogUtils.d(TAG, String.format("add(T iWinBoll) tag is %s", tag));
if (isActive(tag)) {
- LogUtils.d(TAG, String.format("add(...) %s is active.", iWinBoll.getTag()));
+ LogUtils.d(TAG, String.format("isActive(tag) is true, tag : %s.", tag));
} else {
// 设置起始活动窗口,以便最后退出时提问
- if (firstIWinBollActivity == null && _mapIWinBollList.size() == 0) {
- firstIWinBollActivity = iWinBoll;
+ if (mFirstIWinBollActivity == null && _mapIWinBollList.size() == 0) {
+ LogUtils.d(TAG, "Set firstIWinBollActivity, iWinBoll.getTag() is %s" + iWinBoll.getTag());
+ mFirstIWinBollActivity = iWinBoll;
}
// 添加到活动窗口列表
@@ -168,7 +168,7 @@ public class WinBollActivityManager {
}
public boolean isFirstIWinBollActivity(IWinBollActivity iWinBollActivity) {
- return firstIWinBollActivity != null && firstIWinBollActivity == iWinBollActivity;
+ return mFirstIWinBollActivity != null && mFirstIWinBollActivity == iWinBollActivity;
}
//
@@ -220,10 +220,10 @@ public class WinBollActivityManager {
//
public void resumeActivity(Context context, T iWinBoll) {
LogUtils.d(TAG, "resumeActivity(Context context, T iWinBoll)");
- ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
+ ActivityManager am = (ActivityManager) mGlobalApplication.getSystemService(Context.ACTIVITY_SERVICE);
//返回启动它的根任务(home 或者 MainActivity)
- Intent intent = new Intent(mContext, iWinBoll.getClass());
- TaskStackBuilder stackBuilder = TaskStackBuilder.create(mContext);
+ Intent intent = new Intent(mGlobalApplication, iWinBoll.getClass());
+ TaskStackBuilder stackBuilder = TaskStackBuilder.create(mGlobalApplication);
stackBuilder.addNextIntentWithParentStack(intent);
stackBuilder.startActivities();
//moveTaskToFront(YourTaskId, 0);
@@ -287,7 +287,7 @@ public class WinBollActivityManager {
IWinBollActivity preIWinBoll = getPreIWinBoll(iWinBoll);
iWinBoll.getActivity().finish();
if (preIWinBoll != null) {
- resumeActivity(mContext, preIWinBoll);
+ resumeActivity(mGlobalApplication, preIWinBoll);
}
}