【问题标题】:Black screen issue while calling another activity调用另一个活动时出现黑屏问题
【发布时间】:2019-08-09 18:50:27
【问题描述】:

在我的主要活动中,我有 5 个图像视图。通过单击每个图像,它应该将活动导航到另一个。但我的问题是,在单击图像时,它显示相同的活动一次,然后黑屏一段时间,然后只有它正在显示第二个活动。我用谷歌搜索了这个,但我不知道如何纠正这个.. 到目前为止我已经尝试过

private View.OnClickListener onClickListener = new View.OnClickListener()
      {
        public void onClick(View View)
        {
         {    
  Intent intent = new Intent(main.this, activity1.class);
        //intent.setFlag(Intent.FLAG_ACTIVITY_NO_ANIMATION);
             //   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                             overridePendingTransition (0, 0);
                startActivity(intent);

             /* Intent i = new Intent(main.this, activity1.class);
            startActivity(i);   */
              // startActivity(new Intent(main.this, activity1.class)));
          }

但没有什么对我有用..帮我解决这个问题..提前谢谢..

【问题讨论】:

  • 为什么你会通过第二个意图以及你在哪个课程中通过了你想做的事情亲爱的
  • 删除 flag_activity_new_mask 并删除覆盖挂起的事务。
  • @HarshitRathi 我删除了它并运行了项目.. 然后也遇到了同样的问题
  • 为什么你需要在意图中没有动画的标志。
  • 我推荐了两种设置标志的方法..但同样的问题

标签: android android-intent


【解决方案1】:

也许您将启动模式用作singleInstance,这需要花费大量时间来重新排列堆栈。 请从清单文件中删除此行

android:launchMode="singleInstance"

【讨论】:

    【解决方案2】:
    Imageview.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Intent i = new Intent(CurrentclassName.this,TargetclassName.class);
                    startActivity(i);
                }
            });
    

    【讨论】:

    • private View.OnClickListener onClickListener = new View.OnClickListener() { public void onClick(View View) { { Intent intent = new Intent(main.this, activity1.class);意图.setFlag(意图.FLAG_ACTIVITY_NO_ANIMATION); // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);开始活动(意图); overridePendingTransition (0, 0); /* Intent i = new Intent(main.this, activity1.class);开始活动(一); */ // startActivity(new Intent(main.this, activity1.class))); }
    • 为什么当你调用第一个意图时你调用意图三次老板然后它将进入你的下一个活动,你必须为此创建一个资源来创建视图。我想你在点击视图中理解了因为你写了更多没有必要只调用这两行 Intent i = new Intent(CurrentclassName.this,TargetclassName.class); startActivity(i);
    • 我粘贴了我尝试过的三种不同类型的代码..我分别尝试了所有这三种方法而不是一起..
    • 你还是不能只第一次上二等舱
    • 我的问题是,如果我单击图像,它会显示当前活动一段时间,然后显示黑屏,然后移动到相应的活动..
    【解决方案3】:

    1) 听起来您正在模拟器上进行测试。它们很慢并且需要一些时间来加载新活动,同时显示空白屏幕。在真机上运行即可解决问题。

    2) 可能是您在下一个活动的 onCreate 中加载一些数据。如果这样做,请在线程或异步任务中进行。

    【讨论】:

    • 我只在真实设备上测试这个......除了点击监听器我在创建时没有任何东西
    • 你在调用的 Activity2 中做什么?
    • 我说的是你通过点击图片调用的活动
    • 对不起,我无法发布该代码..这是一个包含图像列表的活动..
    • 就是这样,图像列表需要时间来加载。在单独的线程中加载该列表。
    【解决方案4】:

    startActivity(intent);之前添加overridePendingTransition(0, 0);

    这对我有用。希望这会有所帮助。

    【讨论】:

    • 我试过这个但同样的问题..首先显示相同的页面,然后黑屏,然后显示相应的活动..
    • 你已经在startactivity(intent)之后添加了。
    【解决方案5】:

    在你的 style.xml 文件中做一个简单的技巧: 只需添加<item name="android:windowDisablePreview">true</item> 并检查您的onCreate() 方法。确保它没有负载过重,并且每次在加载活动之前,这意味着在 startActivity(intent); 添加 overridePendingTransition(0,0); 之前,希望这会有所帮助。

    【讨论】:

      【解决方案6】:

      感谢“Maulik”,我解决了黑屏问题。

      正如他所说:

      首先,在 styles.xml

      中为您的主题偏好添加下一行
      <item name="android:windowDisablePreview">true</item>
      

      那么,在你调用startActivity()之前,你应该调用

      overridePendingTransition(0,0);
      

      overridePendingTransition(R.anim.your_custom_anim1, R.anim.your_custom_anim2);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-02
        相关资源
        最近更新 更多