【发布时间】:2014-01-12 23:54:53
【问题描述】:
我已经搜索过此问题的解决方案,但找不到。让我先讨论一下这个问题。
我有一个使用 Intellij 创建的广播接收器。在 intellij 中,使用 run 命令将 APK 加载到运行 android 2.2.1 的手机上。起初广播接收器工作良好,但当手机锁定时,几个小时后广播接收器似乎停止工作。
我想我已经配置了我的 androidmanifest.xml 并且代码也可以,因为它在手机锁定之前和手机解锁时都可以工作。
不管怎样,下面是这个涉及代码的sn-p。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.smsapp"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
<application android:label="@string/app_name">
<receiver android:name=".SmsReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<activity android:name=".SMSApp"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
这里是广播接收器sn-p:
public class SmsReceiver extends BroadcastReceiver {
final SmsManager sms = SmsManager.getDefault();
@Override
public void onReceive(Context context, Intent intent) {
String textMessage = getReceivedMessage(context, intent);
SharedPreferences pref = context.getSharedPreferences("smsapp", context.MODE_PRIVATE);
try {
GMailSender sender = new GMailSender("test@email.com", "pass");
sender.sendMail("New Message Received",
getReceivedMessage(context, intent),
"test@email.com",
"recvr@email.com");
} catch (Exception e) {
Log.e("SendMail", e.getMessage(), e);
}
}
}
公共类 SMSApp 扩展 Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
请告诉我此问题的可能原因以及我可能采取的步骤,以便解决此问题。
谢谢!!!
编辑: 只是为了加起来,我尝试使用模拟器,但效果很好......
【问题讨论】: