【问题标题】:Android kill process from broadcast receiverAndroid 从广播接收器杀死进程
【发布时间】:2011-06-15 03:28:05
【问题描述】:

您好,我希望在 USB 断开连接时终止我的应用程序中的一个活动,我有一个广播接收器,并且所有设置都可以正常工作

public class USBOff extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Intent intent1 = new Intent(context, SdcardOff.class);
    startActivity(intent1);
    finish();
    }
 }

然而,这段代码告诉我需要创建完成方法和 startActivity 方法?为什么这不起作用谢谢你对我的问题的任何帮助

【问题讨论】:

    标签: android android-activity usb broadcastreceiver kill-process


    【解决方案1】:

    startActivity 是 Context 方法,而不是 BroadcastReceiver 方法。 finish 是一个 Activity 方法。试试这个:

    context.startActivity(intent1);

    您不能从 BroadcastReceiver 调用 finish

    【讨论】:

      【解决方案2】:

      我找到了一个 interexting 方法: 曼菲斯特:

      android:launchMode="singleInstance"
      <action android:name="com.gr.app.KILLSELF" />
      

      接收方代码:

      Intent intentInterface = new Intent("com.gr.app.KILLSELF");
      mContext.startActivity(intentInterface);
      

      活动 onCreate 部分:

      if (intent.getAction().compareTo("com.gr.app.KILLSELF") == 0) {
              finish();
          };
      

      如果您可能有许多活动实例(字符串 android:launchMode="singleInstance" 对您来说是个问题),它将无法在这样的配置中工作,

      希望对你有帮助

      【讨论】:

        【解决方案3】:

        简单的逻辑:

        如果你不想杀死活动,那么不要使用finish() 如果你想杀死活动,那么你应该调用finish();

        所以去掉finish();从代码中尝试一下。 享受吧。

        【讨论】:

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