繁体   English   中英

在另一个活动中开始活动

[英]start activity inside another activity

我有一堂课,看起来像这样:

public class GoogleDriveSync extends AppCompatActivity {

     // What Happens When App Is Resumed//
     @Override
     protected void onStart() {

         // Where I Want To Start Inner Class//

         super.onStart();
     }

     private class SyncReminders extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

         @Override
         public void onConnected(@Nullable Bundle bundle) {

         }

         @Override
         public void onConnectionSuspended(int i) {

         }

         @Override
         public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

     }
}

在那个班里,我还有另一个班。 主班最终将有三个私人班。 如何使用意图启动内部类。 谢谢!

它必须是Activitypublic static子类(或AppCompatActivity ,如此处所示),而不是private类。 然后,您可以通过startActivity()启动它,就像启动任何其他活动一样。

但是,目前尚不清楚为什么要执行这些操作。 从另一个活动的onStart()开始一个活动不太可能是您想要的。

假设您的名称奇怪的GoogleDriveSync活动是启动器活动,让我们GoogleDriveSync一下将会发生的情况:

  • 用户点击您的启动器图标
  • Android创建GoogleDriveSync的实例
  • Android在您的GoogleDriveSync实例上调用onCreate()
  • Android在您的GoogleDriveSync上调用onStart() ,在此您调用startActivity()启动SyncReminders
  • Android会在您的GoogleDriveSync上调用onStop() ,因为它不再可见(假设SyncReminders是典型的活动,填满整个屏幕)
  • Android创建SyncReminders的实例,遍历其生命周期方法,并向其显示
  • 最终,用户尝试按BACK
  • Android在您的GoogleDriveSync上调用onStart() ,在此您调用startActivity()启动SyncReminders
  • Android会在您的GoogleDriveSync上调用onStop() ,因为它不再可见(假设SyncReminders是典型的活动,填满整个屏幕)
  • Android创建SyncReminders的实例,遍历其生命周期方法,并向其显示
  • 最终,用户尝试按BACK
  • Android在您的GoogleDriveSync上调用onStart() ,在此您调用startActivity()启动SyncReminders

等等。

换句话说,将永远不会显示GoogleDriveSync的用户界面,并且用户会想知道为什么她不能退出SyncReminders

除非有明确的理由在此处使用两个活动,否则请仅使用一个活动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM