EDIT:プッシュ通知のための私のメッセージ受信サービスに関する問題を発見しました。私がアプリケーションを終了するサービスを停止する場合、問題はもう表示されませんが、私は私の電話で受信通知をクリックすると、間違った活動から私のアプリを起動します...私のAndroidアプリは自動的に起動します
postNotification(new Intent(context, NotificationsActivity.class), context);
私はメッセージを受信しました。
これは問題ですか?
私はアンドロイドで自分のプロフィールを作成して友人と交流できるアプリをやっています。アプリにはGoogleマップとプッシュ通知が実装されています。 これが起こってからしばらくの間、アプリが停止したりアプリを終了したりすると、しばらくしてからアプリが自動的に再開するので、私は見つけられません。 私はここに私のコードのすべてを掲載することができないので、誰もこの問題に遭遇し、この問題の原因をどこから探すべきか考えていますか?アプリケーションが強制終了されたときに実行されているサービスであれば、アプリを再起動することができますか?私はアプリ自体がこの問題から完全に離れて走っているので、私はかなり切迫していると言わざるを得ない。あなたがサービスから活動を開始するかどうかを
<?xml version="1.0" encoding="utf-8"?>
<!--
The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
Google Maps Android API v2, but you must specify either coarse or fine
location permissions for the 'MyLocation' functionality.
-->
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- GCM -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- GOOGLE CLOUD MESSAGING -->
<permission
android:name=".permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name=".permission.C2D_MESSAGE" />
<!-- if you want to keep processor from sleeping when a message is received -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider1496945817221747"
android:exported="true" />
<application
android:largeHeap="true"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<activity
android:name=".SplashScreen"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
<activity
android:name=".AddActivity"
android:label="@string/title_activity_add"
android:parentActivityName=".MainActivity"
android:theme="@style/AppTheme.NoActionBar" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity
android:name=".DiscoverActivity"
android:label="@string/title_activity_discover"
android:parentActivityName=".MainActivity"
android:theme="@style/AppTheme.NoActionBar" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity
android:name=".DetailActivity"
android:label="@string/title_activity_detail"
android:parentActivityName=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".ProfileActivity"
android:label="@string/title_activity_profile"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".EditProfileActivity"
android:label="@string/title_activity_edit_profile"
android:parentActivityName=".ProfileActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ProfileActivity" />
</activity>
<!--
The API key for Google Maps-based APIs is defined as a string resource.
(See the file "res/values/google_maps_api.xml").
Note that the API key is linked to the encryption key used to sign the APK.
You need a different API key for each encryption key, including the release key that is used to
sign the APK for publishing.
You can define the keys for the debug and release targets in src/debug/ and src/release/.
-->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps"
android:screenOrientation="portrait" >
</activity>
<!-- FACEBOOK ACTIVITY -->
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name=".FriendsActivity"
android:label="@string/title_activity_friends"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".RegisterActivity"
android:label="@string/title_activity_register"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".NotificationsActivity"
android:label="@string/title_activity_notifications"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<!-- GCM -->
<!-- android:name="com.google.android.gms.gcm.GcmReceiver" -->
<receiver
android:name=".ExternalReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="com.google.android.c2dm.intent.REGISTER" />
<category android:name=".androidtest" />
</intent-filter>
</receiver>
<service
android:name=".NotificationService"
android:exported="false" >
</service>
<service
android:name=".LoadImageService"
android:exported="false" >
</service>
<service
android:name=".AddFriendService"
android:exported="false" >
</service>
<service
android:name=".AcceptFriendService"
android:exported="false" >
</service>
<service
android:name=".JoinService"
android:exported="false" >
</service>
<service
android:name=".DeleteService"
android:exported="false" >
</service>
<activity
android:name=".EditActivity"
android:label="@string/title_activity_edit"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<service
android:name=".MessageReceivingService"
android:label=".MessageReceivingService" >
<intent-filter>
<action android:name=".AndroidMobilePushApp" />
<action android:name=".ExternalReceiver" />
<category android:name=".androidtest" />
</intent-filter>
</service>
<activity
android:name=".BasesActivity"
android:label="@string/title_activity_bases"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
</application>
はい私がそうです。だから私はこれに対処できますか?私のメッセージ受信サービスの問題を発見しました。私は、アプリケーションを閉じてサービスを停止する場合、問題はもう表示されませんが、私は自分の携帯電話で受信通知をクリックすると、間違った活動から私のアプリを起動します... – rudi
PendingIntentを使用して活動を指定することができます。 http://stackoverflow.com/questions/13716723/open-application-after-clicking-on-notification またはhttp://developer.android.com/intl/ru/training/notify-user/navigationを参照してください。 html バックスティックの動作を設定することができます。例えば、 –
postNotificationメソッドでは保留中のインテントを使用しています – rudi