2017-05-18 157 views
0

當我嘗試從我的穿戴裝置移動到我的手機時,出現此錯誤。當我按下手錶上的按鈕時,會有一條消息發送給聽衆服務。而且我想開始從我的listenerService的方法我MainActivity但我得到的錯誤:android.app.Application無法轉換爲MainActivity

java.lang.ClassCastException: android.app.Application cannot be cast to com.my_emergency.samdesmedt.my_emergency.MainActivity
at com.my_emergency.samdesmedt.my_emergency.ListenerServiceFromWear.onMessageReceived(ListenerServiceFromWear.java:28)

這是我的清單:

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

    <uses-permission android:name="android.permission.SEND_SMS" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.READ_SMS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".AddActivity"> 
     </activity> 
     <activity 
      android:name=".SettingsActivity"> 
     </activity> 
     <activity 
      android:name=".EditSettingsActivity"> 
     </activity> 
     <activity 
      android:name=".EditActivity" > 
     </activity> 

     <service android:name=".ListenerServiceFromWear"> 
      <intent-filter> 
       <action android:name="com.google.android.gms.wearable.BIND_LISTENER"/> 
      </intent-filter> 
     </service> 
    </application> 

</manifest> 

這是我ListenerServiceFromWear.Java

@Override 
public void onMessageReceived(MessageEvent messageEvent) { 
    super.onMessageReceived(messageEvent); 

    if (messageEvent.getPath().equals(WEARPATH)) { 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.putExtra("isEmergency", true); 
     startActivity(intent); 
    } 
} 

這是我mainActivity代碼

Intent intent = getIntent(); 
boolean isEmergency = intent.getBooleanExtra("isEmergency", false); 

if(isEmergency){ 
    startEmergencyMode(message); 
} 
+0

我只是想我的機會.. 意向意圖=新意圖(getBaseContext(),MainActivity.class);或 Intent intent = new Intent(getApplicationContext(),MainActivity.class); –

+0

這個修復了,謝謝! – smmss

回答

1
Intent intent = new Intent(getBaseContext(), MainActivity.class); 

固定它

相關問題