Android如何防止服务停止服务所引发的Activity

时间:2015-10-01 23:46:10

标签: android

我做了一个有广播接收器的应用程序,它在启动时启动服务。该服务有两个线程,一个用于侦听UDP数据包,另一个用于处理数据包,将其转换为消息,并调用在列表视图中显示当前消息的活动。这些消息将通过服务接收的取消数据包从显示中删除。因此,仅显示有效消息。一切正常,直到用户关闭活动。当用户关闭显示活动时,服务停止并重新启动,这会导致服务保留的任何活动消息丢失。如何在每次活动结束时阻止服务重新启动,或者是否有办法阻止用户关闭活动?请指教。

我的清单

  <?xml version="1.0" encoding="utf-8"?>
     <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mcs.rmsg" >

    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission
    android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.QUICKBOOT_POWERON"/>
    <application
    android:name="com.mcs.rmsg.GlobalState"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MsgView"
        android:label="@string/app_name">
         <intent-filter>
             <action android:name="android.intent.action.MAIN" />
           <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <receiver android:enabled="true" android:exported="true"
        android:name=".mstart"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
    <service android:name=".udp"
                  />
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
   </manifest>

1 个答案:

答案 0 :(得分:0)

我通过从应用程序中删除显示活动类来修复问题,但是通过创建虚拟活动,它不执行任何操作。打开和关闭此活动不会停止服务。该服务接收UDP数据包并在有效消息时处理它,它会发出音频警报并写入文件。我开发了另一个应用程序来读取文件中的消息并在屏幕上显示