2011-10-31 45 views
1

播出我有類,看起來像這樣:起反應,從另一個進程

package com.broadcast; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 

public class BroadcastActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 

public void tasterPritisnut(View target) { 
    Intent intent = new Intent("akcija"); 
    intent.putExtra("message", "Hello Valakar"); 
    this.sendBroadcast(intent); 
} 
} 

這是廣播類。 Manifest類:

<uses-sdk android:minSdkVersion="10" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:label="@string/app_name" 
     android:name=".BroadcastActivity" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

現在我已經創造了新的類新項目:

package com.reciever; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.util.Log; 

public class Reciever4 extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    String poruka = intent.getStringExtra("message"); 
    Log.d("", poruka + " " + Thread.currentThread().getName() + " " + Thread.currentThread().getId()); 
} 
} 

這是接收器類,以及清單文件是這樣的:

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

<uses-sdk android:minSdkVersion="10" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <receiver android:name=".Reciever4"> 
     <intent-filter> 
      <action android:name="akcija"/> 
     </intent-filter> 
    </receiver> 
</application> 

</manifest> 

我安裝了這兩個應用程序,但是當我發送廣播時,日誌中沒有打印任何內容。我已經構建了類似於Apress書籍的示例,但無法使其工作。我錯過了什麼?

回答

0

快速思考:你需要打電話給setAction嗎?這個webpage有一個例子,如果你想要一個例子,他們會調用setAction。如果你的意圖是用「com.yourdomain.yourapp.yourintent」這個完整的包名命名的(儘管我認爲這不太可能導致你的問題)。

API docs<action>元說:

對於您定義的動作,最好使用包名作爲前綴 ,以確保其唯一性。