我正在开发一个 Android 应用程序,我正在尝试注册活动生命周期回调。
在我的启动器活动 (Agreement.java) 中,onCreate我有以下内容:
this.getApplication().registerActivityLifecycleCallbacks(new LoginManager());
Run Code Online (Sandbox Code Playgroud)
此活动会检查协议是否已达成一致,如果同意,则立即完成并调用 LoginActivity.java 但我在活动回调类中的 toast 通知没有显示,我的 logcat 消息也没有显示,因此它看起来并不像就像它被解雇一样。
下面是实现活动回调的 LoginManager 类
public class LoginManager extends Application implements Application.ActivityLifecycleCallbacks
{
private final String TAG = "LoginManager";
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState)
{
Toast.makeText(activity, "Activity Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "Activity Created");
long currentEpochTime = System.currentTimeMillis() / 1000l;
Log.d(TAG, "Current Epoch: " + currentEpochTime);
CommonTasks commonTasks = new CommonTasks(activity);
SharedPreferences settings = commonTasks.getAppsSharedPreferences();
long timeDifference = currentEpochTime - settings.getLong(Defines.SharedPreferenceSettings.LAST_ACTIVE_EPOCH, 0);
Log.d(TAG, "Time Difference: …Run Code Online (Sandbox Code Playgroud) 我onResume()在onPause()方法中注册接收器并取消注册它。我的 Crashlytics 报告中可能出现奇怪的错误:
Fatal Exception: java.lang.RuntimeException
Unable to pause activity {package-here}: java.lang.IllegalArgumentException: Receiver not registered:
Caused by java.lang.IllegalArgumentException
Receiver not registered:
Run Code Online (Sandbox Code Playgroud)
它在 20k 安装中发生了 3 次(3 个用户)。
如果之前没有调用过 onResume(),是否有可能调用 onPause()?我以为不是。
android illegalargumentexception receiver activity-lifecycle android-lifecycle
我已经为我的android应用创建了初始屏幕。我的问题很简单。5秒钟后,启动屏幕消失,主要活动起作用。然后,如果我单击“返回”按钮,它将再次返回启动屏幕。但我不要这个。
如果用户在mainactivity上触摸“返回”按钮,则应用必须进入没有闪屏的android菜单。我该如何解决?
package com.example.androidfirst;
import android.app.Activity;
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
Thread timer = new Thread() { //new Thread
@Override
public void run() {
try {
sleep(5000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
finally {
Intent MainAct = new Intent("com.example.androidfirst.MAINACTIVITY");
startActivity(MainAct);
try {
this.finalize();
}
catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
timer.start();
}
}
Run Code Online (Sandbox Code Playgroud) 将我的项目更新到 android 10 后,我的 HomeActivity 崩溃了,该应用程序在旧版本的 android 上运行良好,但是当我使用 Android 10 设备时会发生崩溃,我有一个启动活动并且它运行正常,但是在移动到onCreate setContentView(R.layout.activity_home)上的主页活动 ;
这是崩溃报告:
E/UncaughtException: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aia.portercustomer/com.aia.portercustomer.activity.HomeActivity}: android.view.InflateException: Binary XML file line #17 in com.aia.portercustomer:layout/abc_screen_simple: Binary XML file line #17 in com.aia.portercustomer:layout/abc_screen_simple: Error inflating class androidx.appcompat.widget.FitWindowsLinearLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3271)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3410)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2017)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
Caused by: android.view.InflateException: Binary XML file line #17 in com.aia.portercustomer:layout/abc_screen_simple: Binary XML file line …Run Code Online (Sandbox Code Playgroud) android activity-lifecycle android-activity android-studio android-10.0