このサイトのおかげで、私は最初のAndroidプロジェクトで大きな進歩を遂げました。
起動が完了したレシーバーのonReceive()メソッドで実行を一時停止しようとしています。以下は私のマニフェストとレシーバーコードです。
Android 2.3.3API
- 10IDE-
エミュレータで実行されている
Eclipse
マニフェスト:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.demo.notepad3" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application android:icon="@drawable/icon" >
<activity
android:label="@string/app_name"
android:name=".ProjectTrackerHomeActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ProjectTrackerEditActivity" />
<receiver android:name=".ProjectTrackerNotification" />
<receiver
android:name=".ProjectTrackerOnBootReceiver" >
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
受信者:
public class ProjectTrackerOnBootReceiver extends BroadcastReceiver {
private ProjectTrackerDBAdapter mDbHelper;
@Override
public void onReceive(Context context, Intent intent) {
Debug.waitForDebugger();
AlarmManager
mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
//I place the break point at line 2, the alarm manager line
// Further code, irrelevant
}
私の観察-1
。このアプリケーションをEclipseでデバッグモードで実行すると、ブレークポイントに到達することすらありません。
2.デバッグモードで他のアプリケーションを実行すると、このブレークポイントが瞬間的に発生します。しかし、段階的に実行を進める前に、実行が再開されます。それだけではありません。
この動作の理由は次のとおりです。-
1。他のアプリケーションを実行すると、上記のアプリは既にインストールされているため、ブート完了ブロードキャストをキャッチし、ブレークポイントに到達します。(しかし、なぜブレークポイントで実行が停止しないのですか?)
2.このアプリのみを実行すると、最初にインストールされ、インストールにかかる時間で、起動完了ブロードキャストが失われます。
以下のクエリについてサポートをお願いします
。1。ブレークポイントで実行を再開せずに、実行を停止させるにはどうすればよいですか。
2.エミュレータを実行するたびに、エミュレータで「新しくインストールすることなく」デバッグモードで、このアプリのインストール済みバージョンをエミュレータで実行できますか?
3.他に何か間違っていることや何かが足りないことはありますか?
アプリケーションロジックのバグをさらにキャッチするには、onReceive()を介してデバッグする必要があるため、お知らせください。どうもありがとう、皆さん。