2012-11-16 84 views
0

我有一個廣播接收器,當它收到一個意圖時,我想開始/恢復一個活動。直到開始活動一切工作正常,我得到意圖等我無法從廣播接收器開始活動

但我不能開始我的活動。

這是我的Android清單:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.imgzine.testing" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="16" /> 

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".WebViewActivity" 
     android:theme="@android:style/Theme.NoTitleBar" > 
    </activity> 
    <activity 
     android:name="com.imgzine.testing.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

這裏是我試圖啓動活動:

package com.imgzine.testing; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.webkit.WebView; 

public class WebViewActivity extends Activity { 

private WebView webView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.webview); 

    Log.w("DEBUG", "Hello, I'm a webview"); 

    webView = (WebView) findViewById(R.id.webView1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl("http://www.google.com"); 

} 

} 

這裏是我的廣播接收器的從那裏部分我嘗試開始活動:

    Log.w("DEBUG", "Hello, I receive."); 
     Intent webviewintent = new Intent(webviewcontext, 
     WebViewActivity.class); 
     webviewintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     webviewintent.setAction(Intent.ACTION_MAIN); 
     webviewintent.addCategory(Intent.CATEGORY_LAUNCHER); 
     webviewcontext.startActivity(webviewintent); 

我必須澄清一下,webviewcontext是我主要活動的上下文,我通過廣播接收器的構造函數將它傳遞給此處。我的主要活動創建的BroadcastReceiver:

BroadcastReceiver mReceiver = new MyPhoneReceiver(context); 
registerReceiver(mReceiver, filter); 

但活動不會啓動。這裏是日誌我得到:

11-16 12:47:36.144: W/DEBUG(818): Hello, I receive. 
11-16 12:47:36.144: I/ActivityManager(58): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.imgzine.testing/.WebViewActivity } 

任何想法更是值得歡迎的。

預先感謝您。

回答

0
Intent intent = new Intent(webviewcontext,WebViewActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
webviewcontext.startActivity(intent); 
0

事實證明,問題在於上下文。

以下工作:

webviewcontext = context.getApplicationContext(); 

(上下文是我從的onReceive獲取上下文)